实验二:8259 中断控制器实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二 8259A中断控制器实验
1、编制程序:拨动单脉冲开关,“”送给8259A的IR0,触发中断, 8088计数中断次数,显示于G5区的数码管上
2、运行程序
3、上下拨动单脉冲开关,拨动二次,产生一个“”,观察结果,
数码管上显示的次数与拨动开关次数是否对应。
.MODEL TINY
EXTRN DISPLAY8:NEAR
IO8259_0 EQU 0F000H
IO8259_1 EQU 0F001H
.STACK 100
.DATA
BUFFER DB 8 DUP(?)
COUNTER DB ?
REDISPLAYFLAG DB 0
.CODE
START: MOV AX,@DATA
MOV DS,AX
MOV ES,AX
NOP
CALL INIT8259
CALL WRIINTVER
MOV COUNTER,0
MOV REDISPLAYFLAG,1
STI ;¿ªÖжÏ
START1: CMP REDISPLAYFLAG,0
JZ START1
CALL LEDDISPLAY
MOV REDISPLAYFLAG,0
JMP S TART1
INIT8259 PROC NEAR
MOV DX,IO8259_0
MOV AL,13H
OUT DX,AL
MOV DX,IO8259_1
MOV AL,08H
OUT DX,AL
MOV AL,09H
OUT DX,AL
MOV AL,0FEH
OUT DX,AL
RET
INIT8259 ENDP
WRIINTVER PROC NEAR
PUSH ES
MOV AX,0
MOV ES,AX
MOV DI,20H
LEA AX,INT_0
STOSW
MOV AX,CS
STOSW
POP E S
RET
WRIINTVER ENDP
LEDDISPLAY PROC NEAR
MOV AL,COUNTER
MOV AH,AL
AND AL,0FH
MOV BUFFER,AL
AND AH,0F0H
ROR A H,4
MOV BUFFER + 1,AH
MOV BUFFER + 2,10H ;¸ßÁùλ²»ÐèÒªÏÔʾ
MOV BUFFER + 3,10H
MOV BUFFER + 4,10H
MOV BUFFER + 5,10H
MOV BUFFER + 6,10H
MOV BUFFER + 7,10H
LEA SI,BUFFER
CALL DISPLAY8
RET
LEDDISPLAY ENDP
INT_0: PUSH DX
PUSH AX
MOV AL,COUNTER
ADD AL,1
DAA
MOV COUNTER,AL
MOV REDISPLAYFLAG,1
MOV DX,IO8259_0
MOV AL,20H
OUT DX,AL POP A X
POP D X
IRET ENDSTART