Защищенный режим процессоров Intel


Программа, которая работает с прерываниями - часть 6


null_idt idt_struc <> CODESEG PROC set_rmode NEAR mov [real_sp],sp ; Переводим процессор в состояние отключения, ; это эквивалентно аппаратному сбросу, но ; выполняется быстрее. ; Сначала мы загружаем IDTR нулями, затем ; выдаём команду прерывания. lidt [FWORD null_idt] int 3 ; Это старый способ сброса процессора через ; контроллер клавиатуры. ; mov al,SHUT_DOWN ; out STATUS_PORT,al rwait: hlt jmp rwait LABEL shutdown_return FAR in al,INT_MASK_PORT and al,0 out INT_MASK_PORT,al mov ax,DGROUP mov ds,ax assume ds:DGROUP cli mov ss,[real_ss] mov sp,[real_sp] mov ax,000dh out CMOS_PORT,al sti mov es,[real_es] call disable_a20 ret ENDP set_rmode ; ------------------------------------------------- ; Обработка исключений ; ------------------------------------------------- ; Обработчики исключений. Записываем в AX номер ; исключения и передаём управление процедуре ; shutdown LABEL exc_00 WORD mov ax,0 jmp shutdown LABEL exc_01 WORD mov ax,1 jmp shutdown LABEL exc_02 WORD mov ax,2 jmp shutdown LABEL exc_03 WORD mov ax,3 jmp shutdown LABEL exc_04 WORD mov ax,4 jmp shutdown LABEL exc_05 WORD mov ax,5 jmp shutdown LABEL exc_06 WORD mov ax,6 jmp shutdown LABEL exc_07 WORD mov ax,7 jmp shutdown LABEL exc_08 WORD mov ax,8 jmp shutdown LABEL exc_09 WORD mov ax,9 jmp shutdown LABEL exc_0A WORD mov ax,0ah jmp shutdown LABEL exc_0B WORD mov ax,0bh jmp shutdown LABEL exc_0C WORD mov ax,0ch jmp shutdown LABEL exc_0D WORD mov ax,0dh jmp shutdown LABEL exc_0E WORD mov ax,0eh jmp shutdown LABEL exc_0F WORD mov ax,0fh jmp shutdown LABEL exc_10 WORD mov ax,10h jmp shutdown LABEL exc_11 WORD mov ax,11h jmp shutdown LABEL exc_12 WORD mov ax,12h jmp shutdown LABEL exc_13 WORD mov ax,13h jmp shutdown LABEL exc_14 WORD mov ax,14h jmp shutdown LABEL exc_15 WORD mov ax,15h jmp shutdown LABEL exc_16 WORD mov ax,16h jmp shutdown LABEL exc_17 WORD mov ax,17h jmp shutdown LABEL exc_18 WORD mov ax,18h jmp shutdown LABEL exc_19 WORD mov ax,19h jmp shutdown LABEL exc_1A WORD mov ax,1ah jmp shutdown LABEL exc_1B WORD mov ax,1bh jmp shutdown LABEL exc_1C WORD mov ax,1ch jmp shutdown LABEL exc_1D WORD mov ax,1dh jmp shutdown LABEL exc_1E WORD mov ax,1eh jmp shutdown LABEL exc_1F WORD mov ax,1fh jmp shutdown DATASEG exc_msg db "Exception ...., ....:....


Начало  Назад  Вперед