Иллюстрированный самоучитель по Assembler


Организация приложений MS-DOS - часть 17


;Установим наш обработчик

mov AH,25h    ;Функция заполнения вектора

mov AL,08h    ; Номер вектора

mov DX,offset new_08 ; Смещение нашего обработчика

push DS                    ; Сохраним DS=data

push CS                    ; Перепишем CS в DS

pop DS                      ; через стек. DS:DX->new_08

int 21h

pop DS                         ; Восстановим DS=data

...                                   ; Продолжение основной программы

; Перед завершением программы восстановим исходный вектор

Ids DX ,old_08      ; Заполним DS:DX из old_08

mov AH,25h                     ; Функция заполнения вектора

move AL,08h           ; Номер вектора

int 21h

mov AX,4C00h         ;Функция завершения программы

int 21h

main endp

;Процедура обработчика прерываний от таймера

new_08 proc

...                ; Действия. выполняемые 18 раз в секунду

mov AL,20h     ;Разблокировка прерываний

out 20h,AL      ; в контроллере прерываний

iret                   ; Возврат в прерванную програму




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



Книжный магазин