Аппаратное обеспечение IBM PC


         

cmdhi and ah, 0f0h mov


; Выводим содержимое регистров сопроцессора

lea dx,cs:r87_msg @@out_str

; Выводим содержимое управляющего регистра

@@out_ch 'C','N','T','R','='

mov ax, cs:regs_87.cr call Print_word

; Выводим содержимое регистра состояния

@@out_ch ' ','S','T','A','T','E','='

mov ax, cs:regs_87.sr call Print_word

; Выводим содержимое регситра тегов

@@out_ch ' ','T','A','G','='

mov ax, cs:regs_87.tg call Print_word

; Выводим содержимое указателя адреса

@@out_ch ' ','C','M','D','A','D','R','='

mov ax, cs:regs_87. cmdhi and ah, 0f0h mov al, ah mov cl, 4 ror al, cl call Print_byte mov ax, cs:regs_87.cmdlo call Print_word @@out_ch ' '

; Выводим содержимое указателя операнда

@@out_ch ' ','O','P','R','A','D','R','='

mov ax, cs:regs_87.oprhi and ah, 0f0h mov al, ah mov cl, 4 ror al, cl call Print_byte mov ax, cs:regs_87.oprlo call Print_word

; Выводим содержимое непустых численных регистров

lea dx,cs:nr_msg @@out_str

mov cx, 8 ; количество регистров - 8 mov dx, 0 ; индекс текущего регистра mov bx, cs:regs_87.tg ; содержимое регистра тегов

; Цикл по стеку численных регистров

nreg_loop:

; Проверяем поле регистра тегов, соответствующее ; текущему обрабатываемому численному регистру

mov ax, bx and ax, 0c000h cmp ax, 0c000h

; Если это поле равно 11B, считаем, что данный ; численный регистр пуст, переходим к следующему

je continue

; Выводим на экран содержимое численного регистра

call Print_numreg

continue:

; Сдвигаем содержимое регистра тегов для ; обработки поля, соответствующего следующему ; регистру.

rol bx, 1 rol bx, 1 inc dx ; увеличиваем индекс текущего регистра

loop nreg_loop

lea dx,cs:hit_msg @@out_str

; Ожидаем нажатия на любую клавишу

mov ax,0 int 16h

; Восстанавливаем содержимое регистров

frstor cs:regs_87

pop bp pop ds pop dx pop cx pop bx pop ax popf

ret

trace_msg db 13,10,'>---- BREAK ----> At address ','$' hit_msg db 13,10,'Hit any key...','$' r87_msg db 13,10,13,10,'Coprocessor state:',13,10,'$' nr_msg db 13,10,'Numeric Registers:',13,10,'$'


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