- 3
- 0
- 约1.14万字
- 约 62页
- 2017-02-06 发布于江苏
- 举报
例7.5 由PC XT机外部产生中断请求的简单中断程序。 系统将8259A的中断输入线IR0~IR7初始化为由低变高 的边沿触发,通过一开关(单稳、防抖)将中断请求信号接到 PC XT总线的引脚B4,即IRQ2上。该开关先输出低电平,运 行程序显示提示信息“WAIT INTERRUPT”后再将开关输出高 电平,使IRQ2的电平由低变高,于是向8259A的中断输入线 发出了中断请求信号。成功后再将开关返回到低电平。 该程序可以用到任何可以产生中断请求信号的外设接 口的电路上。 如前所述,PC XT机已对8259A进行了初始化操作,故 只需进行操作命令字的设定,8259A的端口地址为20H和21H。 要使用的命令字有屏蔽字OCW1和中断结束命令字OCW2。 程序中用JMP $ 指令来等待中断,若程序中不改变屏 蔽字开放IRQ2中断,则扳动开关后,程序总处于等待状态, 不进入中断。 因为JMP $ 指令执行之后才响应中断,所以响应中断 时进入堆栈保护的断点地址仍是JMP $ 指令的地址。故中 断返回前应修改返回地址,以便返回后跳过该指令,执行 JMP $ 指令的下一条指令。 JMP $ 指令是近跳转的2字节指令 (指令的机器码为 EBFEH),故修改返址是将返回地址加2。 其程序如下: stack segment st
原创力文档

文档评论(0)