- 1、本文档共75页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
8.8086中断
中断方式命令字 OCW2(A0=0) * 状态操作命令字 OCW3 (A0=0) * 查询状态寄存器 I - - - - W2 W1 W0 D7 D6 D5 D4 D3 D2 D1 D0 中断位I位为1, 有外设请求中断 W2~W0的编码 当前中断请求的最高优先级 * 7.3.4 8259A在PC/XT中的应用举例 * 在I/O地址空间中,分配给8259A的I/O端口地址为20H和21H。对8259A的初始化规定: 边沿触发方式,缓冲器方式, 中断结束为EOI命令方式,中断优先权管理采用全嵌套方式。8级中断源的类型码为08H~0FH。各级中断源规定如表7 - 3 所示。 (1) 8259A初始化编程。 根据系统要求,8259A初始化编程如下: MOV AL ;写入ICW1,设定边沿触发, OUT 20H,AL ;单片8259A,需要ICW4 MOV AL ;写入ICW2,中断类型码基数为08H, OUT 21H,AL ;8个中断源类型号为08~0FH MOV AL ;写入ICW4,普通全嵌套方式, OUT 21H,AL ;普通EOI缓冲方式,选用8086/8088CPU * 在用户程序中,允许用OCW1来设置中断屏蔽寄存器IMR,以控制各个外设申请中断允许或屏蔽。但注意不要破坏原设定工作方式。 如允许日时钟中断IRQ0和键盘中断IRQ1, 其他状态不变, 则可送入以下指令: (2) 8259A操作方式编程 IN AL, 21H ; 读出IMR AND AL, 0FCH ; 只允许IRQ0和IRQ1,其他不变 OUT 21H, AL ; 写入OCW1, 即IMR * 由于中断采用的是非自动结束方式, 因此若中断服务程序结束,则在返回断点前,必须写入OCW2,即20H, 发出中断结束命令。 MOV AL, 20H ; 设置OCW2的值为20H OUT 20H, AL ; 写入OCW2的端口地址20H IRET ; 中断返回 在程序中,通过设置OCW3,亦可读出IRR、ISR的状态以及查询当前的中断源。如要读出IRR内容以查看申请中断的信号线,这时可先写入OCW3,再读出IRR。 MOV AL, 0AH ; 写入OCW3, 读IRR命令 OUT 20H, AL NOP ; 延时, 等待8259A的操作结束 IN AL, 20H ; 读出IRR * 7.4 异常 外部中断或硬件中断通常称为中断(Interrupt),软件中断或异常中断通常称为异常(Exception) 异常分为三类:故障(Faults)、 陷阱(Traps)和中止(Abort)。三类异常的差别表现在三个方面: 一是发生异常的报告方式,二是异常中断服务程序的返回方式,三是引起 异常的程序是否可被恢复2。 * 故障:若某条指令在启动之后,真正执行之前被检测到异常,产生异常中断,而且在中断服务完成后返回该指令,重新启动并执行完成,这类引起故障的程序可以被恢复执行。 陷阱:该类异常是在指令执行期间被检测到并在引起异常的指令执行之后向系统报告。且其中断服务程序完成后返回到主程序中的下一条指令。 中止:该类异常是在微处理器面临严重错误时产生的中止。例如硬件错误或系统表格中的错误值造成的异常引起中止的指令是无法确定的,产生这种异常时,正执行的程序不能被恢复。因此中断服务程序往往重新启动操作系统并重建系统表格。 * 第7章教学要求 1. 熟悉8088的中断类型、中断响应过程、中断向量表 2. 掌握内部中断服务程序的编写 3. 理解8259A的内部结构、寄存器作用、中断过程 4. 掌握8259A的普通全嵌套优先权、普通中断结束、边沿触发方式 5. 8259A初始化 * 习题例解 1、4、8、9 练习题 1、2(1)(2)、6 * 写ICW1 A0=0,D4=1 写ICW2
文档评论(0)