微机原理及接口技术 教学课件 ppt 作者 王惠中 王强 第7章 中断系统

上传人:E**** 文档编号:89507316 上传时间:2019-05-26 格式:PPT 页数:70 大小:795.50KB
返回 下载 相关 举报
微机原理及接口技术 教学课件 ppt 作者 王惠中 王强 第7章 中断系统_第1页
第1页 / 共70页
微机原理及接口技术 教学课件 ppt 作者 王惠中 王强 第7章 中断系统_第2页
第2页 / 共70页
微机原理及接口技术 教学课件 ppt 作者 王惠中 王强 第7章 中断系统_第3页
第3页 / 共70页
微机原理及接口技术 教学课件 ppt 作者 王惠中 王强 第7章 中断系统_第4页
第4页 / 共70页
微机原理及接口技术 教学课件 ppt 作者 王惠中 王强 第7章 中断系统_第5页
第5页 / 共70页
点击查看更多>>
资源描述

《微机原理及接口技术 教学课件 ppt 作者 王惠中 王强 第7章 中断系统》由会员分享,可在线阅读,更多相关《微机原理及接口技术 教学课件 ppt 作者 王惠中 王强 第7章 中断系统(70页珍藏版)》请在金锄头文库上搜索。

1、第七章 中断系统,重点掌握内容: 8086系统的中断源及其固定的优先权次序 8086中断的全过程 8086系统对INTR中断的管理 中断控制器8259的基本结构及功能 几个重要概念:中断源、中断优先权、中断类型码、中断向量、断点、现场 中断控制器8259A的编程,第七章 中断系统,中断是微机系统中非常重要的一种技术,是对微处理器功能的有效扩展。利用外部中断,微机系统可以实时响应外部设备的数据传送请求,能够及时处理外部随机出现的意外或是紧急事件。利用内部中断,微处理器为用户提供了发现、调试并解决程序执行异常情况的有效途径。因此,中断是用以提高计算机工作效率的一种重要技术。如何建立准确的中断概念和

2、灵活掌握中断技术是学好本门课程的关键问题之一。,第七章 中 断 系 统,一、中断概述 二、8086的中断系统 三、可编程中断控制器8259A,一、什么是中断?,7.1 有关中断的基本概念,中断是由一不可知的事件引起的,CPU响应中断后,将暂时停止正在运行的程序流程,而转去执行预定的处理,当这些不可预知的事件的程序,执行完毕,再返回被中断的程序的一个过程。因此,所谓中断,是指CPU在正常执行程序的过程中,由于内部/外部事件或由程序的预先安排,引起CPU暂时中断当前程序的运行而转去执行为内部/外部事件或预先安排的事件服务的子程序,待中断服务子程序执行完毕后,CPU再返回到暂停处(断点)继续执行原来

3、的程序,这一过程称为中断。或者说,中断就是CPU在执行当前程序的过程中因意外事件插入了另一段程序的运行。利用中断可以大大提高CPU的工作效率。实现中断功能的控制逻辑称为中断机构或中断系统。,CPU执行流程,中断的用途,CPU的中断功能的实现带来了以下好处:,1、同步处理,2、实现了实时处理,3、多道程序或多重任务的运行,4、突发事件处理,有关中断的基本概念(续),二、中断源 能够引起中断的原因,或能够发出中断请求信号的外设。,可屏蔽中断 (INTR) 不可屏蔽中断 (NMI),外部中断 (硬中断) 内部中断 (软中断),(因执行指令而引起),、 、 、 、 、 MOV AH, 01 INT 2

4、1H CMP AL, 0DH 、 、 、 、 、 PUSH AX 、 、 IRET,软件中断,断点: 通常指被中断的主程序中,下一条待运行的指令的地址。它是中断返回时的指令指针之值。由于是指CPU执行的现行程序被中断时的下一条指令的地址,又称断点地址。 现场: 指中断发生前程序的运行状态,即标志寄存器(程序状态字)。为了保证中断返回后能继续正确地执行原来的程序,中断系统必须能在中断发生时自动保存现场,并在中断返回时自动恢复现场。(是指CPU转去执行中断服务程序前的运行状态,包括CPU内部各寄存器、断点地址等。),三、中断的断点和现场,、 、 、 、 、 MOV AX, 0 ADD AX, DX

5、 MOV DI , AX 、 、 、 、 、 PUSH AX 、 、 IRET,地址1000:150H为断点,断点概念,系统中的多个中断源可能同时提出中断请求,此时需要按中断事件的轻重缓急为每个中断源指定一个处理的优先级别,即中断优先级。 当多个中断源同时提出中断请求时,中断系统按照优先级对中断源进行排队,总是优先处理优先权高的中断。,四、中断优先级,当前CPU正在进行某一优先权级别的中断源的处理; 有更高级别的中断源发出请求,且新中断源满足响应条件; CPU中止当前的中断服务程序,保护断点和现场,转而响应高级中断 这种多级中断的处理方式即为“嵌套”。某些中断系统对中断嵌套的层数有一定限制。,

6、五、中断嵌套,高级中断源能中断低级的中断处理 当CPU正在处理某个中断时,如果外部又有一个优先级别比本优先级别更高的中断请求,则可以实现中断嵌套。,中断嵌套 当CPU正在进行某一级别中断源的中断处理时,若有更高级别的新中断源发出请求,且新中断源满足响应条件,则CPU应中止当前的中断服务程序,保护此程序的断点和现场,转而响应高级中断。这种多级(重)中断的处理方式称为“嵌套”。,中断嵌套示意图,中断嵌套必须具备的几个条件,1)第一级中断(已处于响应状态的原中断)的服务程序中,应在保护现场执行完毕后加上开放总中断(IF位置1)的指令; 2)新到来的中断应具有比原中断高的优先级,同级或低级均不能嵌套;

7、 3)为保护各级中断服务程序的数据不被破坏,所有服务程序中均应有保护现场、恢复现场的指令; 4)每个中断服务程序末尾必须有IRET指令以示结束,从而返回被中断的程序地址处,某些情况下CPU可能不对已发出的中断请求作出响应或处理,称为该中断请求被“屏蔽” 。 中断屏蔽可能在两种情况下发生: 中断系统设置了中断屏蔽标志(或中断允许标志),以屏蔽某些中断源的请求; 当系统在处理优先级别较高的中断请求时,不会理睬新来的级别较低的中断请求中断系统自动屏蔽优先级低的中断。,六、中断屏蔽,子程序的执行由程序员安排(由调用子程序的指令转入),断点是确知的;而中断服务程序的执行一般由随机的中断事件引发,断点不确

8、定。 子程序的执行受到主程序或上层子程序的控制;而中断服务子程序一般与被中断的现行程序无关。 不存在同时调用多个子程序的情况,因此子程序不需要进行优先级排队;而不同的中断源则可能同时提出服务请求。,七、中断服务程序与子程序的区别,八、中断系统的功能,实现中断及返回 中断源发出中断请求,CPU决定是否响应:若响应,则保护断点和现场,转入相应中断服务程序,中断服务结束后,恢复现场和断点,继续执行原程序。,非预料事件是指事件发生的时间无法预知,即中断源何时产生中断不确定,是随机的。,中断源产生中断的随机性,使中断服务程序的执行也具有随机性,即何时执行中断服务程序不是在程序中安排好的。,实现优先权排队

9、 按各中断请求的重要程度排列CPU响应的次序称为中断优先级。 即同时有多个中断请求到来时,CPU会首先响应和处理优先级别最高的中断请求。 中断优先级的实现可以用软件或硬件的办法。,中断系统的功能(续),软件查询法判优流程,硬件实现的中断优先权排队电路,8086的中断处理过程,自动保存 现场、断点,CPU响应外中断的条件,1具备中断请求触发器 2具备中断屏蔽触发器 3开放总中断 4在现行指令结束后响应中断,7.2 8086的中断系统,7.2.1 8086的中断源(8086微型机有两类中断): 1、可屏蔽硬件中断INTR、不可屏蔽硬件中断NMI、 2、软件中断(包括自动产生中断)。各类中断源如图所

10、示。,根据8086内部的中断逻辑电路,各种中断源的优先权顺序为:被0除中断软件中断INTO NMI INTR 单步中断。,CPU内的中断逻辑,7.2.2 中断类型码、中断向量表和中断向量,中断类型码:8086可以处理256个中断请求,每个中断请求均对应于惟一固定的类型码。被0除类型码是0,单步为1;NMI为2;断点中断为3,溢出中断为4 等。 中断向量:即中断服务程序的入口地址,包括段地址(高字单元)和偏移地址(低字单元)。 中断向量表:存放中断向量的表,位于内存空间的最低地址单元,长1KB。共可容纳256个中断向量(25641024)。,中断类型码,一、中断类型码:8086可以处理256个中

11、断请求。每个中断请求均对应于唯一固定的类型码。被0除类型码是0,单步为1; NMI为2;断点中断为3,溢出中断为4;等。,IBM PC/XT中断源的功能,INTR,BIOS 可调用,DOS 可调用,内部中断的种类,(1)除法出错中断 类型号为00H,除法出错中断既不是外部硬件产生,也不是用软件指令产生,而是CPU自身产生的,因此0型中断没有对应的中断指令,即指令系统中没有INT 0这条指令。,(2)单步中断(陷阱中断) 类型号为01H,对单步中断要注意三点:一是所有类型的中断在其处理过程中,CPU会自动地把标志寄存器FLAGS压入堆栈,然后清除TF和IF。因此当CPU进入单步中断处理程序时,就

12、不再处于单步工作方式,而以正常方式工作。只有在单步处理结束时,从堆栈中弹出原来的标志,才能使CPU又回到单步方式。二是通常程序编制好后,在DEBUG调试程序时可使用单步中断检查程序,是通过跟踪命令T来实现单步运行。三是8086/8088指令系统中没有设置或清除TF标志的指令,但指令系统中的PUSHF和POPF为程序员提供了置位或复位TF的手段。置位和复位TF的程序段如下所示:,;置位TF标志 PUSHF POP AX OR AX, 0100H PUSH AX POPF,;复位TF标志 PUSHF POP AX AND AX, 0FEFFH PUSH AX POPF,(3) 断点中断 类型号为0

13、3H,设置断点实际上是把一条断点指令INT 3插入程序中,CPU每执行到断点处的INT 3指令便产生一个中断。,(4)溢出中断 类型号为04H,在执行溢出中断指令INTO时,若标志寄存器FLAGS中的溢出标志OF=1,则产生一个类型号为4的内部中断,称为溢出中断。,对带符号数来说,溢出就意味着出错(加、减运算),一旦产生应立即发现,而CPU并不知道当前处理的数据是无符号数还是带符号数,只有程序员才明确这一点。因此通常在带符号数的加、减法运算后面总是跟着INTO指令,当标志寄存器的OF=0时,则INTO指令不产生中断,CPU继续运行原程序;当OF=1时,进入溢出中断处理程序,打印出一个出错信息,

14、在处理程序结束时,不返回原程序继续运行,而是把控制交给操作系统。,如下面的指令用来测试加法的溢出: ADD AX ,VALU INTO,(5) 指令中断,在8086/8088的指令系统中,当CPU执行中断指令INT n时,也能形成内部中断,其中n在理论上可取值0255。当n0、1、3、4时,就是上述的四种内部中断。,内部中断的特点,(1) 除单步中断以外,所有内部中断都不能被屏蔽。 (2) 所有内部中断不从外部接口中读取中断类型号也不发送中断响应信号,即不执行中断响应的总线周期。 (3) 指令中断没有随机性,外中断是随机性的。指令中断是由程序中指令引起的,指令位置事先已知。外中断是随机性的,由

15、I/O设备引起,何时引起事先未知。 (4) 除单步中断外,所有内部中断的优先权都比外部中断的优先权高。,中断向量和中断向量表,二、中断向量:中断服务程序的入口地址,包括段地址(存放于高字单元)和偏移地址(存放于低字单元)。 三、中断向量表:存放中断向量的表格。位于内存空间的最低地址,长度1KB,可容纳256类中断向量(25641024)。,中断向量和中断向量表,已知中断类型码后,如何进入中断服务程序? 1、将中断类型码乘以4,得到中断向量表的向量首址指针; 2、将断点(当前CS、IP的值)入栈保护; 3、取中断向量:把向量表指针所指的4个连续字节的内容作为中断服务程序的入口地址,分别送给IP和

16、CS; 4、按新的CS:IP指针执行中断服务程序。,中断类型码的获取 NMI、断点中断、溢出中断、被0除、单步中断等类型码固定。 INT N软中断类型码由立即数N给出。 外部中断读取中断类型码。,中断响应过程,(FLAG),0150,1000,中断响应过程,中断向量的设置方法,用三种方法来为中断类型N设置中断向量,1) 直接装入法 PUSH DS XOR AX, AX MOV DS, AX MOV BX, N*4 MOV AX, OFFSET NEWINT MOV WORD PTR BX,AX MOV AX, SEG NEWINT MOV WORD PTR BX+2,AX POP DS,NEWINT PROC,IRET NEWINT ENDP,、 、 、,、 、 、,中断向量的设置方法,2) 使用串送存指令装入法 MOV AX, 0 MOV ES, AX MOV DI, N*4

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号