8259中断控制 实验报告材料
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
深圳大学实验报告课程名称:微机原理与接口技术
实验项目名称:8259中断控制实验
学院:信息工程学院
专业:电子信息工程
指导教师:
报告人:学号:201019 班级:电子
实验时间:2012.5.18
实验报告提交时间:2012.6.9
教务处制
ASSUME CS:CODE
START: PUSH DS
MOV AX, 0000H
MOV DS, AX
MOV AX, OFFSET MIR7 ;取中断入口地址
MOV SI, 003CH ;中断矢量地址放在0000:003c-0000:003f
MOV [SI], AX ;填IRQ7的偏移矢量
MOV AX, CS ;段地址
MOV SI, 003EH
MOV [SI], AX ;填IRQ7的段地址矢量
CLI
POP DS
;初始化主片8259
MOV AL, 11H
OUT 20H, AL ;A0=0,ICW1为00010001B,边沿触发,需要ICW4
MOV AL, 08H
OUT 21H, AL ;A0=1,ICW2为00001000B,保持低三位为0
MOV AL, 04H
OUT 21H, AL ;A0=1,ICW1中SNGL=1,ICW3中D2=1,表示接端口接从属8259
MOV AL, 01H
OUT 21H, AL ;ICW4,一般嵌套,8086模式,非自动EOI方式,非缓冲方式
MOV AL, 6FH ;A0=1,寻址OCW1,01101111B,M=0时清除屏蔽状态
OUT 21H, AL
STI
AA1: NOP ;无限循环,等待中断发生
JMP AA1
MIR7: STI
CALL DELAY
MOV AX, 0137H
INT 10H ;显示字符7
MOV AX, 0120H
INT 10H
MOV AL, 20H
OUT 20H, AL ;中断结束命令
IRET
DELAY: PUSH CX ;延时子程序
MOV CX, 0F00H
AA0: PUSH AX
POP AX
LOOP AA0
POP CX
RET
CODE ENDS
END START
实验结果如图所示,能够正确执行设定功能.
实验程序分析:一般中断实验,为了保护现场,程序开头都会引用堆栈把把现在的程序
MOV AL, 6BH
OUT 21H, AL ;主8259 OCW1
STI
AA1: NOP
JMP AA1
MIR7: CALL DELAY
MOV AX, 014DH
INT 10H ;M
MOV AX, 0137H
INT 10H ;显示字符7
MOV AX, 0120H
INT 10H
MOV AL, 20H
OUT 20H, AL ;中断结束命令
IRET
SIR1: CALL DELAY
MOV AX, 0153H
INT 10H ;S
MOV AX, 0131H
INT 10H ;显示字符1
MOV AX, 0120H
INT 10H
MOV AL, 20H
OUT 0A0H, AL
OUT 20H, AL
IRET
DELAY: PUSH CX
MOV CX, 0F00H
AA0: PUSH AX
POP AX
LOOP AA0
POP CX
RET
CODE ENDS
END START
实验结果截图如下,能够正确执行设定功能.
级联实验分析:这是8259的级联实验.其中主片8259的初始化和操作前一个程序已经说了,现在,主要说说级联情况下,从片8259的初始化和操作控制.从片8259A的INT