Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Діагностика типу CPU і його продуктивності

Реферат Діагностика типу CPU і його продуктивності





робника процесора

;---------------------------------------------------------------_ out proc

push eax

inc ROW

lea bp, DSTR1

mov cx, 80

call str_out

inc ROW


xor eax, eax

cpuid


mov dword ptr VENDOR_STR [+14], ebx

mov dword ptr VENDOR_STR [+18], edx

mov dword ptr VENDOR_STR [+22], ecx

lea bp, VENDOR_STR

mov cx, VENDOR_STR_LEN

call str_out

inc ROW

; Отримуємо максимальний номер функції

mov [HEAX], eax

; Отримуємо максимальної номер розширеної функції

mov eax, 80000000H

cpuid

mov [HEEAX], eax

pop eax


ret_out endp

;---------------------------------------------------------------

; Переклад вмісту регістра EAX в десяткове число (символи ASCII)

; di - покажчик на буфер, де буде зберігатися число

;---------------------------------------------------------------_ dec_out proc

mov ebx, 10; дільник

: xor edx, edx; обнуляем edx

div ebx; eax=edx: eax/ebx, залишок в edx

push dx; зберігаємо в стеку

test eax, eax; всі поділі? (eax=0)?

jz l2

call l1; якщо ні, залишаємо в стеку адресу мітки l2

; і переходимо на l1

: pop ax; дістаємо цифру з стека

add al, 30h; перетворимо в ASCII цифру

mov [di], al

inc di

ret; переходимо на адресу возврата_dec_out endp

;---------------------------------------------------------------

; Визначення тактової частоти процесора

; eax - частота CPU в МГц

;---------------------------------------------------------------

get_cpu_freq proc

push es


; Визначити тактову частоту

; Налаштування сегментного регістра ES на область даних BOIS

xor ax, ax

mov es, ax

mov eax, es: [046ch]; Запам'ятати поточний час

; Чекаємо зміна стану системного таймера:

cmp eax, es: [046ch]

je t0

; Запам'ятовуємо значення лічильника тиків

rdtsc

mov [starttsc], eax

; Запам'ятовуємо початкове значення системного часу

mov eax, es: [046Ch]

; Чекаємо 16 тиків

add eax, 16:

cmp eax, es: [046Ch]

ja t1

; Отримуємо кінцеве значення лічильника тиків

rdtsc

; Обчислюємо середню довжину інтервалу

; (число тактів в одному тику)

sub eax, [starttsc]

shr eax, 4; ділимо на 16

; Множимо тривалість інтервалу на частоту

; генератора системного таймера

mov edx, 1193180

mul edx

; Ділимо результат на коефіцієнт перерахунку системного таймера (65536)

shrd eax, edx, 16

xor edx, edx; Обчислюємо частоту в МГц (ділимо на 1000000)

mov ebx, 1000

div ebx

; У eax частота CPU

mov [freq], eax


pop es

ret _cpu_freq endp

;---------------------------------------------------------------

; Перевірка підтримки розширень (FPU, MMX, SSE, SSE2, 3D NOW!)

;---------------------------------------------------------------_ ext proc

inc ROW


lea bp, DSTR1

mov cx, 80

call str_out

inc ROW


Назад | сторінка 6 з 11 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: ! Застосування системного підходу та системного аналізу в Юридичним дослідж ...
  • Реферат на тему: Наукові погляди А.А. Богданова та їх значення для розвитку системного анал ...
  • Реферат на тему: CASE-технології в моделюванні даних інформаційної системи Call-центру
  • Реферат на тему: Розробка фірмового стилю і створення фільму-презентації музичного колективу ...
  • Реферат на тему: Маркетингова діяльність Call-центру Окі-Токі ТОВ "Масском"