Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
10. Программирование на ассемблере ПЭВМ.Обработ...doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
568.32 Кб
Скачать

In al,60h ; читаем scan-код из порта 60h

push BX

push CX

push DX

push DS

cmp AL,47H ; код клавиши <Home>?

jne check ; по “нет” переход на обработку

Xor bx,bx ; загрузка байта

mov DS,BX ; состояния

mov AL,DS:[0417H] ; клавиатуры

mov AH,AL ; сохранение байта состояния

and AL,0cH; проверка на нажатие <Ctrl+Alt>

cmp AL,0cH

jne check ; по “нет” переход на обработку

Xor byte ptr сs:flag,1;установка/сброс “озвучания”

check: cmp byte ptr CS:flag,0 ; режим “озвучания” включен?

je exit ; по “нет” переход на конец

mov DX,800 ;

in AL,61H ;

and AL,0feH ; п р о г р а м м а

n_cycl: or AL,2 ;

out 61H,AL ;

mov CX,150 ; о з в у ч а н и я

cycl_u: loop cycl_u ;

and AL,0fdH ;

out 61H,AL ; н а ж а т и я

mov CX,150 ;

cycl_d: loop cycl_d ;

dec DX ; к л а в и ш и

jnz n_cycl ;

exit: pop DS

pop DX

pop CX

pop BX

pop AX

db 0eaH ; Передаем управление родному обработчику

original dw ? ; адрес старого обработчика

dw ? ; 9-го прерывания

flag db 0 ; флаг режима "озвучания”

mes db 'tsr:',0ah,0dh,24h ; сообщение о загрузке резидента

; инсталлятор