e-mail    Debatní kniha    Mapa stránek    Hlavní  
 perličky 
 

Test CPU

Pavel Pitner

Uvedený program testuje typ procesoru v počítači. Po spuštění vypíše na obrazovku zprávu Detekován procesor xxx., kde za xxx dosadí 8086/88, 80286, 80386 nebo 80486. Jakým způsobem se zjišťuje přítomnost daného typu, je patrné z komentovaného výpisu.

Program přeložíte TASMem a TLINKem vytvoříte .COM soubor.

Použitá literatura -- Michal Brandejs, Mikroprocesory Intel 8086--80486

; TEST_CPU.ASM Code SEGMENT ASSUME CS:Code,DS:Code,ES:Code org 100H Test_CPU: ; Test na procesor 8086/88: ; V registru FLAGS jsou stále nastaveny bity 12-15. pushf ; ulož příznaky do registru AX pop ax mov bx,ax ; uschovej pro test 80286 and ax,0FFFh ; vynuluj bity 12-15 push ax ; a hodnotu ulož zpět popf ; do FLAGS pushf ; znovu přečti příznaky do AX pop ax and ax,0F000h ; testuj, zda jsou bity 12-15 cmp ax,0F000h ; opět nastaveny mov dx,offset CPU86 je Hotovo ; Test na procesor 80286: ; V reg. FLAGS jsou bity 12-15 naopak stále vynulovány. or bx,0F000h ; nastav bity 12-15 push bx ; a hodnotu zapiš zpět popf ; do registru FLAGS pushf ; znovu načti příznaky do BX pop bx test bx,0F000h ; testuj, zda jsou bity 12-15 nulové mov dx,offset CPU286 jz Hotovo ; Test procesoru 80386 a 80486: ; U procesoru 80486 je nový příznak ; v registru EFLAGS - AC (bit 18). ; Hodnotu příznaku je možno měnit na 80486, ; ale ne na 80386. .386 and sp,not 3 ; zarovnej SP, aby nedošlo k chybě AC pushfd ; ulož registr EFLAGS do EAX pop eax mov ecx,eax ; uschovej EFLAGS pro porovnání xor eax,40000h; neguj bit 18 (AC) push eax ; ulož novou hodnotu do EFLAGS popfd pushfd ; znovu přečti EFLAGS do EAX pop eax cmp eax,ecx ; testuj, zda byl bit 18 změněn mov dx,offset CPU386 je Hotovo ; nebyl - pak se jedná o 80386 mov dx,offset CPU486; jinak 80486 Hotovo: mov ah,9 ; výstup řetězce na STDOUT int 21h ; adresa řetězce je DS:DX mov ax,4C00h ; ukonči program int 21h CPU86DB 'Detekován procesor 8086/88.', 13, 10, '$' CPU286 DB 'Detekován procesor 80286.', 13, 10, '$' CPU386 DB 'Detekován procesor 80386.', 13, 10, '$' CPU486 DB 'Detekován procesor 80486.', 13, 10, '$' Code ENDS END Test_CPU


Pascal - hlavní
Překladače
Vlastní články
Převzaté články
Věci na stáhnutí
Odkazy k tématu
BP7 buglist
Chyba Run-time 200

BASIC