- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
微机原理及应用 主讲:郑海春 第7章 中断系统 7.1 中断系统基本概念 7.2 中断的处理过程 7.3 IBM-PC机中断系统结构 7.4 Intel 8259A可编程中断控制器 7.5 8259A编程举例 7.1 中断系统基本概念 7.1.1 什么是中断 7.1.2 为什么要用中断 7.1.3 中断系统的功能 7.1.4 中断类型号和中断向量表 7.1.1 什么是中断 7.1.2 为什么要用中断 (1)同步操作: 快速CPU与慢速外设的同步(并行)工作。 (2)故障处理: 同机器硬件错误有关的应急事件的处理。 (3)实时处理: 在工业控制中使用的实时微机控制系统。 7.1.3 中断系统的功能 1.实现中断及返回 当某一中断源发出中断申请时,若允许响应这个中断请求,CPU必须在现行的指令执行完后,把断点处的IP和CS值(即下一条应执行的指令的地址)、各个寄存器的内容和标志位的状态推入堆栈保留下来——称为保护断点和现场。然后转到需要处理的中断源的服务程序的入口,同时清除中断请求触发器。当中断处理完后,再恢复被保留下来的各个寄存器和标志位的状态(称为恢复现场),恢复IP和CS值(称为恢复断点),CPU返回断点,继续执行主程序。 2.实现优先权排队 在系统中通常有多个中断源,会出现两个或更多个中断源同时提出中断请求的情况,这样就必须要设计者事先根据轻重缓急,给每个中断源确定一个中断级别——优先权。当多个中断源同时发出中断申请时,CPU能找到优先权级别最高的中断源,响应它的中断请求;在优先权级别最高的中断源处理完了以后,再响应级别较低的中断源。 3.高级中断源能中断低级的中断处理 当CPU正在处理中断时,能响应更高级别的中断请求,而屏蔽掉同级或较低级别的中断请求。 7.1.4 中断类型号和中断向量表 8086有一个简单而又多功能的中断系统。任何一种中断,CPU响应以后,都是要保护断点、和保护现场,然后转入各自的中断服务程序。在8086中各种中断如何转入各自的中断服务程序呢? 8086在内存的前1KB(地址00000H~003FFH)建立了一个中断向量表,可以容纳256个中断向量,每个中断向量占用4个字节。在这4个字节中,包含着这个中断向量的服务程序的入口地址——前两个字节为服务程序的IP,后两个字节为服务程序的CS。 中断向量:指示中断服务程序的入口地址,包括:偏移地址IP 、段地址CS。 每个中断向量的低字是偏移地址、高字是段地址,需占用4个字节(低对低,高对高)。 8086 微处理器从物理地址00000H开始到003FFH(1KB),依次安排各个中断向量,向量号从0到255。 中断向量表: 256个中断向量所占用的1KB区域。 中断向量的存放首址=N×4 7.2 中断的处理过程 7.2.1 概述 7.2.2 CPU响应中断的条件 7.2.3 CPU对中断的响应 处理一个中断的过程,就是妥善处理以下一些基本问题的过程: 1)何时检查中断输入信号。(CPU在每一个指令周期的最后一个T状态采样INTR线,以决定是否进入中断响应周期) 2)如何把控制转给中断服务程序。(中断向量表) 3)如何保护和恢复中断的现场。(堆栈) 4)如何识别优先级较高的中断。(优先权排队) 5)如何开放和关闭中断。(STI 、CLI) 7.2.2 CPU响应中断的条件 1. 设置中断请求触发器(也即要有中断请求) 2. 设置中断屏蔽触发器 只有接口电路中的中断屏蔽触发器为“1”时,外设的中断请求才能被送出至CPU,从而增加了控制的灵活性。可把8个外设的中断屏蔽触发器组成一个端口,用输出指令来控制它们的状态。 3. 中断是开放的 在CPU内部有一个中断允许触发器(也即IF)。只有当其为“1”时,CPU才能响应中断;若其为“0”,即使INTR线上有中断请求,CPU也不响应。而这个触发器的状态可由STI和CLI指令来改变。当CPU复位时,中断允许触发器为“0”,即关中断,所以必须要用STI指令来开中断。当中断响应后,CPU就自动关中断,所以必须在中断服务程序中用STI指令来开中断。 4. 现行指令执行结束 CPU在现行指令结束后响应中断,即运行到指令周期的最后一个T状态时,CPU才采样INTR线。若发现有中断请求,则进入中断响应周期。 总结:CPU响应中断的条件 1)设置中断请求触发器,发出中断请求信号 2)设置中断屏蔽触发器,当此触发器为“1”时,允许外设的中断请求才能被送出至CPU。 3)CPU处于开中断状态。 4)CPU在一条现行指令结束之后响应中断。 7.2.3 CPU对中断的响应 关中断 8086在CPU响应中断后,发出中断响应信号 INTA的同时,内部自
文档评论(0)