📄 pcint9.asm
字号:
;FILENAEM:PCINT9.ASM
;内容:中断服务程序 PCINT9. ASM IRQ9,INT_ PROC,HLT,START PROC FAR,NUM DB 10
INTA00 EQU 20H
INTA01 EQU 21H
INTB00 EQU 0A0H
INTB01 EQU 0A1H
DATA SEGMENT
MESS DB 'THIS A 8259A INTERRUPT!' ,0DH,0AH,'$'
NUM DB 10
DATA ENDS
STACK SEGMENT STACK 'STACK'
DB 100 DUP('S')
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START PROC FAR
MOV AX ,CS
MOV DS, AX
MOV DX,OFFSET INT_PROC
MOV AX, 2571H ;装载中断服务程序
INT 21H
CLI
MOV AX,DATA
MOV DS,AX ;建立数据段
MOV DX ,INTB01
IN AL, DX
AND AL,0FDH ;开放IRQ9
OUT DX, AL
LL: STI ;开中断
HLT ;等待中断
CLI
CMP NUM, 0
JNZ LL ;10次未到再等待
IN AL,INTB01
OR AL, 02H
OUT INTB01, AL ;屏蔽IRQ9
STI
MOV AH, 4CH
INT 21H ;返回DOS
RET
START ENDP
INT_PROC PROC FAR ;中断服务程序
MOV DX,OFFSET MESS
MOV AH, 09
INT 21H ;显示信息
DEC NUM
MOV AL, 20H
OUT INTB00 ,AL ;发EOI命令
OUT INTA00,AL
IRET
INT_PROC ENDP
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -