Аппаратное обеспечение персонального компьютера



           

Программа CPUINFO


Программа CPUINFO определяет модель и характеристики процессора, пользуясь только что описанной нами методикой. Полученная информация выводится на консоль в следующем виде (для процессора Pentium Pro):

*CPU Information*, (C) A. Frolov, 1997

CPU model: 5

Vendor ID: GenuineIntel

CPU Signature    00000619

CPU Feature EDX  0000F9FF

CPU type:     0

CPU family:   6

CPU model:    1

CPU stepping: 9

FPU detected

В листинге 1.4 вы найдете исходный текст модуля, составленного на языке ассемблера. В этом модуле определены все функции, необходимые для распознавания процессора и получения его характеристик.

Листинг 1.4. Файл cpuinfo\askcpu.asm

; =====================================================

; Get CPU information

;

; (C) A. Frolov, 1997

;

; E-mail: frolov@glas.apc.org

; WWW:    http://www.glasnet.ru/~frolov

;            or

;         http://www.dials.ccas.ru/frolov

; =====================================================

  .model small

CPU_ID MACRO

  db 0fh

  db 0a2h

ENDM

  .stack 100h

  .data

 

  public _vendor_id_msg

  public _cpu_model

  public _cpu_signature

  public _features_ecx

  public _features_edx

  public _features_ebx

  public _get_cpu_model

_vendor_id_msg db "............", 0dh, 0ah, "$"

_cpu_model     db 0

_cpu_signature dd 0

_features_ecx  dd 0

_features_edx  dd 0

_features_ebx  dd 0

  .code

; ============================================

; _get_cpu_model

; ============================================

  .8086

_get_cpu_model proc

  call cpu_8086

  cmp ax, 0

  jz try_80286

  mov _cpu_model, 0

  jmp end_of_detect

try_80286:

  call cpu_80286

  cmp ax, 0

  jz try_80386

  mov _cpu_model, 2

  jmp end_of_detect

try_80386:

  call cpu_80386

  cmp ax, 0

  jz try_80486

  mov _cpu_model, 3

  jmp end_of_detect

try_80486:

  call cpu_80486




Содержание  Назад  Вперед