中断及中断控制器本章学习要点中断技术概述8086的中断
- 格式:doc
- 大小:55.00 KB
- 文档页数:7
8086-6-中断中断(8086)中断就是打断处理器当前的执⾏流程,去执⾏⼀些和当前⼯作不相⼲的指令,执⾏完之后,还可以返回到原来的程序流程继续执⾏。
就好⽐你在打游戏突然⽼板来电话了,你不得不先停⽌打游戏然后来处理这件更为重要的事件,然后打完电话之后继续打游戏。
中断的⼀些概念:中断号:由于CPU需要通过对不同类型的中断进⾏不同处理,所以每种类型的中断都被统⼀编号,这称为中断类型号、中断向量或者中断号。
Intel处理器允许256 个中断,中断号的范围是0~255中断源:中断信号的来源,或者说产⽣中断的设备,被称为中断源。
中断嵌套:当⼀个中断事件正在处理时,如果来了⼀个优先级更⾼的中断事件时,允许暂时中⽌当前的中断处理,先为优先级较⾼的中断事件服务,这称为中断嵌套。
实模式下的中断向量表(Interrupt Vector Table,IVT):所谓中断处理,其实就是处理器要执⾏⼀段与该中断有关的程序(指令)你也可以将其当作⼀个函数。
处理器可以识别256 个中断,那么理论上就需要256 段代码。
这些代码实际存放的位置并不重要,重要的是,在实模式下,处理器要求将它们的⼊⼝点也就是起始地址集中存放到内存中从物理地址0x00000 开始,到0x003ff 结束,共1KB 的空间内,这就是所谓的中断向量表。
每个中断的⼊⼝点地址在中断向量表中占2 个字,分别是中断处理代码的偏移地址和段地址。
中断0的⼊⼝点位于物理地址0x00000 处,也就是逻辑地址0x0000:0x0000;中断1 的⼊⼝点位于物理地址0x00004 处,即逻辑地址0x0000:0x0004;其他中断⼊⼝点地址以此类推。
中断分类:中断⼤致上可以分为硬件中断和软件中断(简称为软中断)。
顾名思义,硬件中断由硬件来提供,⽐如说:CPU,⿏标键盘等。
⽽软件键盘由内部的代码来定义。
硬件中断:硬件中断还可以分为外部硬件中断和内部硬件中断,外部硬件中断是指除CPU以外的硬件对应的中断,⽽内部硬件中断是内部CPU对应的中断。
简述 8086 处理器的中断处理过程
8086处理器中断处理过程是用来处理外部引发的中断请求的一个过程。
当中断发生时,中断请求将引发中断向量(中断处理程序的程序入口地址)信号。
此向量会被传送到 CPU 的中断标志寄存器(IFR)中,IFR 会根据当前的中断优先级,将中断请求信号发送给 CPU ,以触发 CPU 的中断处理流程。
当中断请求信号触发处理器,处理器首先将当前的程序状态存储到堆栈中供以后恢复使用,然后根据中断向量从中断服务程序(ISR)中取出正确的处理程序。
此时处理器开始执行相应的 ISR,该程序将完成实际的中断处理程序,ISR 将根据外部事件对 CPU 和其他相关设备进行控制,例如改变 CPU 执行的指令,修改状态位,启动外设设备,等等。
完成中断处理程序后,处理器将恢复原来的程序状态,然后继续执行原来的程序,此时中断程序处理完毕,处理器继续执行程序继续完成任务。
- 1 -。
第7章中断及中断控制器本章学习要点●中断技术概述、8086的中断类型●中断优先权及其管理、中断矢量●中断处理过程●可编程中断控制器8259A及其应用7-1 本章知识重点7-1-1 中断技术的基本概念1.中断的概念所谓“中断”是指CPU在正常执行程序时,由于内部/外部事件或程序的预先安排引起CPU暂时终止执行现行程序,转而去执行请求CPU为其服务的服务程序,待该服务程序执行完毕,又能自动返回到被中断的程序继续执行。
2.中断源能引起中断的外部设备或内部原因称为中断源。
按照与CPU的位置关系可分为内部中断和外部中断。
内部中断是CPU在处理某些特殊事件时所引起或通过内部逻辑电路自己去调用的中断。
外部中断是由于外部设备要求数据输入/输出操作时请求CPU为之服务的一种中断。
通常中断源有以下几种:(1)一般的输入/输出设备,如键盘、打印机等。
(2)实时时钟。
(3)故障源。
(4)软件中断。
3.中断源识别识别中断源通常有两种方法:查询中断和矢量中断。
(1)查询中断:就是用软件查询的方法确定中断源。
当CPU收到中断请求信号时,通过执行一段查询程序,从多个可能的外设中查询申请中断的外设。
(2)矢量中断:又称向量中断。
每个中断源预先指定一个矢量标志,要求外设在提出中断请求的同时,提供该中断矢量标志。
当CPU响应某个中断源的中断请求时,控制逻辑就将该中断源的矢量标志送入CPU,CPU根据矢量标志自动找到相应的中断服务程序入口地址,转入中断服务。
这种中断源识别方法比查询中断要快很多。
4.中断技术的优点(1)同步操作:中断方式不仅可以实现CPU和外设之问的并行工作,而且CPU可命令多个外设同时工作,这大大提高r CPU的利用率,也加快了输A./输出的速度。
(2)实现实时处理:利用中断技术可以及时处理随机输入到微型计算机的各种参数和信息,使微型计算机具备实时处理与控制的能力。
(3)故障处理:CPU可以就根据故障源发出的中断请求,立即去执行相应的故障处理程序,自行处理故障而不必停机,因此提高了微型计算机工作的可靠性。
第7章中断及中断控制器本章学习要点●中断技术概述、8086的中断类型●中断优先权及其管理、中断矢量●中断处理过程●可编程中断控制器8259A及其应用7-1 本章知识重点7-1-1 中断技术的基本概念1.中断的概念所谓“中断”是指CPU在正常执行程序时,由于内部/外部事件或程序的预先安排引起CPU暂时终止执行现行程序,转而去执行请求CPU为其服务的服务程序,待该服务程序执行完毕,又能自动返回到被中断的程序继续执行。
2.中断源能引起中断的外部设备或内部原因称为中断源。
按照与CPU的位置关系可分为内部中断和外部中断。
内部中断是CPU在处理某些特殊事件时所引起或通过内部逻辑电路自己去调用的中断。
外部中断是由于外部设备要求数据输入/输出操作时请求CPU为之服务的一种中断。
通常中断源有以下几种:(1)一般的输入/输出设备,如键盘、打印机等。
(2)实时时钟。
(3)故障源。
(4)软件中断。
3.中断源识别识别中断源通常有两种方法:查询中断和矢量中断。
(1)查询中断:就是用软件查询的方法确定中断源。
当CPU收到中断请求信号时,通过执行一段查询程序,从多个可能的外设中查询申请中断的外设。
(2)矢量中断:又称向量中断。
每个中断源预先指定一个矢量标志,要求外设在提出中断请求的同时,提供该中断矢量标志。
当CPU响应某个中断源的中断请求时,控制逻辑就将该中断源的矢量标志送入CPU,CPU根据矢量标志自动找到相应的中断服务程序入口地址,转入中断服务。
这种中断源识别方法比查询中断要快很多。
4.中断技术的优点(1)同步操作:中断方式不仅可以实现CPU和外设之问的并行工作,而且CPU可命令多个外设同时工作,这大大提高r CPU的利用率,也加快了输A./输出的速度。
(2)实现实时处理:利用中断技术可以及时处理随机输入到微型计算机的各种参数和信息,使微型计算机具备实时处理与控制的能力。
(3)故障处理:CPU可以就根据故障源发出的中断请求,立即去执行相应的故障处理程序,自行处理故障而不必停机,因此提高了微型计算机工作的可靠性。
7-1-2中断系统1.中断系统的功能(1)能实现中断响应、中断服务和中断返回。
当某个中断源发出中断请求n,J,CPU可决定是否响应这个中断请求。
如果CPU正在执行更紧急、更重要的工作时,可以暂不响应中断。
若允许响应这个中断请求,则CPU必须在执行完现行指令后,保护断点和现场,即把断点处的IP和CS值、各寄存器的内容与标志位的状态压入堆栈,然后再转去执行相应的中断服务程序,同时清除中断请求信号。
当中断服务程序执行完毕后,再恢复现场和断点,使CPU返回主程序继续执行,至此CPU的一次中断过程结束。
其过程如图7.1所示。
图7.1 中断的过程(2)能实现中断优先权排队在中断系统中,CPU一般要根据各中断请求的轻重缓急分别处理,即给每个中断源确定一个中断优先级别——中断优先权,系统能够自动地对它们进行排队判优,保证首先处理优先级别高的中断请求,待级别高的中断请求处理完毕后,再响应级别较低的中断请求。
(3)能实现中断嵌套当CPU响应某一中断请求,并为其服务时,若有优先权更高的中断源发出中断请求,则要求CPU能打断正在执行的中断服务程序,响应更高级别的中断请求。
在高级别中断请求处理完后,再返回被打断的中断服务程序继续执行,即实现中断嵌套。
CPU允许高优先级中断请求可以打断低优先级中断服务,使CPU对于急需处理的事件立即作出响应。
2.中断类型8086采用了矢量型的中断结构,共有256个中断矢量号,又称中断类型号。
按照与CPU的相对位置关系分为外部中断和内部中断。
内部中断也称软件中断,是由处理器检测到异常情况或执行软件中断指令所引起的一种中断。
通常有除法出错中断、INTO溢出中断、INT n中断、断点中断和单步中断等。
外部中断也称硬件中断,是由CPU的外部中断请求信号触发的一种中断,分为不可屏蔽中断NMI和可屏蔽中断INTR。
3.内部中断(1)除法出错中断:在执行除法指令DIV或IDⅣ时,若发现除数为0或商超过了目的寄存器所能表达的范围,则CPU会立即产生一个中断类型码为0的内部中断。
(2)INTO溢出中断:若上一条指令执行的结果使溢出标志位OF=I,则执行中断指令INTO 时,将引起中断类型码为4的内部中断。
(3)INT n指令:8086CPU执行一条INT n中断指令,就会发生一次中断,其中n为中断类型码(范围为0~255)。
(4)断点中断:8086CPU执行单字节中断指令INT 3,就产生一个中断类型码为3的内部中断,它主要用于程序调试。
(5)单步中断:当标志寄存器中的TF标志位为1时,CPU就处于单步工作方式。
这时CPU 在每条指令执行完后自动产生中断类型码为l的内部中断,作为中断处理过程的一部分,CPU 将自动把标志寄存器的内容和断点压入堆栈保存起来,然后将TF和Ⅲ清零。
4.内部中断的特点(1)中断矢量号是由CPU自动提供的,不需要执行中断响应总线周期去读取矢量号。
(2)除单步中断外,所有内部中断都无法禁止,即都不能通过执行CLI指令使IF位清零来禁止对它们的响应。
(3)除单步中断外,任何内部中断的优先权都比外部中断高。
8086CPU的中断优先权顺序为:内部中断(除法出错中断、INTn指令中断、INTO溢出中断、断点中断);NMI中断;INTR中断和单步中断。
5.外部中断8086CPU有两条外部中断请求信号线:NMI和INTR,用来输入外设向CPU发出的中断请求信号。
(1)非屏蔽中断请求NMI由NMI引脚引入的是不可屏蔽中断请求,采用边沿触发。
它不受中断允许标志位Ⅲ的影响,即使在关中断(IF=O)的情况下,CPU也能在当前指令执行完毕后就响应NMI上的中断请求。
(2)可屏蔽中断INTR由INTR引脚引入的是可屏蔽中断请求,采用电平触发方式,高电平有效。
CPU在当前指令周期的最后一个T状态采样INTR中断请求线,若发现有可屏蔽中断请求,CPU将根据中断允许标志位IF的状态决定是否响应。
如果IF=0,表示CPU处于关中断状态,屏蔽INTR线上的中断,CPU不理会该中断请求而继续执行下一条指令。
如果IF=I,表示CPU处于开中断状态,允许INTR线上的中断,CPU执行完现行指令后转入中断响应周期。
注意:可屏蔽中断的优先权低于非屏蔽中断。
7-1-3中断优先权与中断管理1.中断优先权实际的中断系统中常常有多个中断源,而中断申请引脚往往只有一条中断请求线。
于是在多个中断源同时请求时,CPU必须首先确定为哪一个中断源服务,要能辨别优先权最高的中断源并响应之。
当CPU在处理中断时,也要能响应更高级别的中断申请,而屏蔽掉同级或较低级的中断申请。
通常有两种方法解决中断优先权的识别问题。
(1)用软件查询方法确定中断优先权。
中断优先权由查询顺序决定,最先查询的中断源具有最高的优先权。
软件查询方法的优点是电路比较简单。
软件查询的顺序就是中断优先权的顺序,不需要专门的优先权排队电路,可以直接修改软件查询顺序来修改中断优先权,不必更改硬件。
缺点是当中断源个数较多时,由逐位检测查询到转入相应的中断服务程序所耗费的时间较长,中断响应速度慢,服务效率低。
(2)硬件优先权排队电路硬件优先权排队电路形式众多,有采用编码器组成的,有采用链式电路的。
硬件链式优先权排队电路又称为菊花环式优先权排队电路,它是利用外设连接在排队电路的物理位置来决定其中断优先权的,排在最前面的优先权最高,排在最后面的优先权最低。
2.中断管理8086CPU可管理256种中断。
对每种中断都指定一个中断矢量号,每一种中断矢量号都可以与一个中断服务程序相对应。
中断服务程序存放在存储区域内,而中断服务程序的入口地址存放在内存储器的中断矢量表内。
中断矢量表是中断矢量号与它相应的中断服务程序的转换表。
当CPU处理中断时,就需要指向中断服务程序的入口地址。
8086以中断矢量为索引号,从中断矢量表中取得中断服务程序的入口地址因为每个中断矢量号要占用4个字节单元。
两个高字节单元用来存放中断服务程序入口的段地址CS,两个低字节单元用来存放从段地址到中断服务程序入El地址的偏移值IP,故256个中断矢量号要占用1024个字节的存储单元,地址范围从00000H~003FFH。
当发生中断矢量号为n的中断请求时,CPU首先把矢量号乘以4,得到中断矢量表的地址,然后把中断矢量表4n地址开始的两个低字节单元内容装入IP寄存器,再把两个高字节单元内容装入cs寄存器,这样就把控制引导到类型rl的中断服务程序的起始地址,开始类型n的中断处理过程。
因此,为了让CPU响应中断后能转入相应的中断服务程序,就必须事前将中断服务程序的入口地址置入中断矢量表中。
中断矢量表分为3部分:专用中断、备用中断和用户中断。
(1)专用中断:类型o~类型4,共有5种类型。
专用中断的中断服务程序的入口地址由系统负责装入,用户不能随意修改。
(2)备用中断:类型5~类型3FH,这是Intel公司为软、硬件开发保留的中断类型,一般不允许用户改作其他用途。
(3)用户中断:类型40H~类型FFH,为用户可用中断,其中断服务程序的入口地址由用户程序负责装入。
这些中断可由用户定义为软件中断,由INT n指令引入,也可以通过]NTR 引脚直接引入的或通过可编程中断控制器8259A引入的可屏蔽中断。
3.微机系统的中断处理过程中断处理过程大致可分为中断请求、中断响应、中断处理和中断返回4个过程。
(1)中断请求cPu在每条指令执行结束后去采样或查询有无中断请求信号。
若查询到有中断请求,并且在允许响应中断的情况下,系统自动进入中断响应周期,由硬件完成关中断、保存断点、取中断服务程序的入口地址等一系列操作,而后转向中断服务程序执行中断处理。
由于外设的中断请求是随机发生的,系统中必须设置一个中断请求触发器把随机输入的中断请求信号锁存起来,并保持到CPU响应这个中断请求后,才能清除。
设置一个中断屏蔽寄存器,用输出指令来控制它们的状态,以决定其相应中断请求信号是否能发向CPU。
(2)中断响应若为非屏蔽中断请求,则CPU执行完现行指令后,就立即响应中断。
CPU若要响应可屏蔽中断请求,必须满足以F 3个条件:①无总线请求;②cvt:允许中断;③cvu执行完现行指令。
(3)中断处理在中断处理时要进行以下操作:● 保护现场:CPU响应中断时自动完成cS、IP寄存器以及标志寄存器F1ags的保护。
● 开中断:主要是为了实现中断嵌套。
● 中断服务:CPU通过执行中断服务程序,完成对中断情况的处理。
(4)中断返回中断返回是由执行中断服务程序中的中断返凹指令IRET来完成的。
当CPU执行该指令时,自动会把断点地址从堆栈中弹出到CS和IP中,原来的标志寄存器内容压入Flags。