.练习编写驻留程序时遇到的问题
本人刚入门,这几天在学习驻留程序。遇到的问题如下:我修改的是键盘中断09h,让其中断向量指向我自己的一段代码(用于检查Numlock是否开启,若锁上,则按数字键时,会发出“毕”声)。但是我在dos下运行时(我用dosbox),老是会出现死机的样子,光标会闪,但是键盘不能输入,按数字键也没有响声。由于本人初学,希望各位大侠尽量讲详细点,感激不尽!
以下是代码:
CSEG SEGMENT
ORG 100H
assume cs: cseg, ds: cseg , es: cseg
START:
JMP INIT
INT9 DD ?
TSR:
PUSH AX
PUSH CX
PUSH DS
MOV AH,2
INT 16H
TEST AL,00100000B
JZ TSREXIT
IN AL,60H
CMP AL,71
JL TSREXIT
CMP AL,83
JG TSREXIT
MOV AL,10110110B
OUT 43H,AL
MOV AX,1000
OUT 42H,AL
MOV AL,AH
OUT 42H,AL
IN AL,61H
MOV AH,AL
OR AL,03
OUT 61H,AL
MOV CX,9000
DELAY:
LOOP DELAY
MOV AL,AH
OUT 61H,AL
TSREXIT:
POP DS
POP CX
POP AX
JMP CS:INT9
INIT:
CLI
MOV AH,35H
MOV AL,09H
INT 21H
MOV WORD PTR INT9,BX
MOV WORD PTR INT9+2,ES
MOV AH,25H
MOV AL,09H
LEA DX,TSR
INT 21H
STI
LEA DX,INIT
ADD DX,15
MOV CL,4
SHR DX,CL
MOV AX,3100H
INT 21H
CSEG ENDS
END START