版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第1010章章第第9 9章章 中断与中断管理中断与中断管理第第9 9章章 中断与中断管理中断与中断管理 本章主要内容本章主要内容8086的中断系统的中断系统 2中断程序设计中断程序设计 41中断概念中断概念 1可编程中断控制器可编程中断控制器8259A 3第第9 9章章 中断与中断管理中断与中断管理 9.1 9.1 中断概念中断概念 1 1、中断中断v 在在CPUCPU正常执行程序的过程中,如果发生内正常执行程序的过程中,如果发生内部部/ /外部事件或是程序预先安排的事件急需外部事件或是程序预先安排的事件急需CPUCPU处理时,处理时,CPUCPU会暂时中断正在执行的程会暂时中断正在执行的程
2、序,转去执行相应的事件处理程序。待事序,转去执行相应的事件处理程序。待事件处理完毕后,件处理完毕后,CPUCPU再返回到被暂时中断的再返回到被暂时中断的程序继续执行。这个过程就称为程序继续执行。这个过程就称为中断中断。v 中断中断是微处理器是微处理器CPUCPU与外部设备交换信息的与外部设备交换信息的一种方式,是一种方式,是CPUCPU处理随机事件和外部请求处理随机事件和外部请求的主要手段。的主要手段。 9.1.1 9.1.1 中断与中断源中断与中断源第第9 9章章 中断与中断管理中断与中断管理 1 1、中断、中断 v最初,中断技术引入计算机系统,只是为了解决快速的最初,中断技术引入计算机系统
3、,只是为了解决快速的CPUCPU与慢速的外部设备之间传送数据的矛盾。与慢速的外部设备之间传送数据的矛盾。v例如:打印输出时,例如:打印输出时,CPUCPU传送数据的速度高,而打印机打传送数据的速度高,而打印机打印的速度低。如果不采用中断技术,印的速度低。如果不采用中断技术,CPUCPU将经常处于等待将经常处于等待状态,效率极低。采用中断技术后,状态,效率极低。采用中断技术后,CPUCPU可以正常进行其可以正常进行其它的工作,只在打印机缓冲区中的当前内容打印完毕发它的工作,只在打印机缓冲区中的当前内容打印完毕发出中断请求之后,才予以响应。这时,出中断请求之后,才予以响应。这时,CPUCPU暂时停
4、止执行暂时停止执行当前程序而转去执行向缓冲区传送数据的程序,传送完当前程序而转去执行向缓冲区传送数据的程序,传送完成后又返回原来的程序执行。这样就大大地提高了成后又返回原来的程序执行。这样就大大地提高了CPUCPU的的效率。效率。第第9 9章章 中断与中断管理中断与中断管理 1 1、中断、中断 v 随着计算机技术的发展,中断技术不断被随着计算机技术的发展,中断技术不断被赋予新的功能,它可以使计算机系统完成赋予新的功能,它可以使计算机系统完成如下功能:如下功能:分时操作,同时处理分时操作,同时处理实现实时处理实现实时处理故障处理故障处理第第9 9章章 中断与中断管理中断与中断管理 2 2、中断源
5、、中断源 v 产生中断请求的设备或事件产生中断请求的设备或事件称为称为“中断源中断源”。v 根据中断源不同,中断可分为三类:根据中断源不同,中断可分为三类:由计算机硬件异常或故障引起的中断,也称由计算机硬件异常或故障引起的中断,也称为为内部异常中断内部异常中断;程序中执行了中断指令引起的中断,也称为程序中执行了中断指令引起的中断,也称为软件中断或软中断软件中断或软中断;外部设备(如输入、输出设备)请求引起的外部设备(如输入、输出设备)请求引起的中断,也称为中断,也称为硬件中断或外部中断硬件中断或外部中断。第第9 9章章 中断与中断管理中断与中断管理 9.1.2 9.1.2 中断系统的功能中断系
6、统的功能 中断请求中断请求中断判优中断判优中断响应中断响应中断返回中断返回中断服务中断服务第第9 9章章 中断与中断管理中断与中断管理 v 中断过程需要由计算机的软、硬件共同完成,中断过程需要由计算机的软、硬件共同完成,能完成中断过程的所有硬件和软件构成能完成中断过程的所有硬件和软件构成中断系中断系统统。v 中断系统应具备如下功能:中断系统应具备如下功能:接收中断请求接收中断请求中断源识别中断源识别中断源判优中断源判优中断嵌套中断嵌套 中断处理与返回中断处理与返回9.1.2 9.1.2 中断系统的功能中断系统的功能 第第9 9章章 中断与中断管理中断与中断管理 v 对于不同的微机系统和不同的中
7、断方式对于不同的微机系统和不同的中断方式(如软件、硬件中断),(如软件、硬件中断),CPUCPU进行中断处进行中断处理的具体过程不完全一样。理的具体过程不完全一样。 v 但都要经过:请求中断、中断判优、中但都要经过:请求中断、中断判优、中断响应、中断处理和中断返回等阶段。断响应、中断处理和中断返回等阶段。 9.1.3 9.1.3 简单的中断处理过程简单的中断处理过程 第第9 9章章 中断与中断管理中断与中断管理 (1 1)中断请求触发器置位)中断请求触发器置位vCPUCPU只有在只有在当前指令执行结束当前指令执行结束后才会检测有无中断后才会检测有无中断请求发生,因此对于外部中断,中断源要向请求
8、发生,因此对于外部中断,中断源要向CPUCPU发发出中断请求,就必须把自己的中断请求信号保持到出中断请求,就必须把自己的中断请求信号保持到CPUCPU响应,才可以清除。响应,才可以清除。v故要求每一个中断源都有一个中断请求触发器,用故要求每一个中断源都有一个中断请求触发器,用于记录中断请求标志。当提出中断请求时,该触发于记录中断请求标志。当提出中断请求时,该触发器被置位,如下图所示。器被置位,如下图所示。1 1、CPUCPU响应中断的条件响应中断的条件第第9 9章章 中断与中断管理中断与中断管理 (2 2)中断屏蔽触发器置位)中断屏蔽触发器置位v在通常情况下,往往有多个中断源。在通常情况下,往
9、往有多个中断源。v在外设接口中,为每一个中断源设置了一个中断屏蔽在外设接口中,为每一个中断源设置了一个中断屏蔽触发器,用来开放或关闭中断源的请求。触发器,用来开放或关闭中断源的请求。v只有中断屏蔽触发器设置为只有中断屏蔽触发器设置为“1”1”时,外设的中断请求时,外设的中断请求信号才能被送到信号才能被送到CPUCPU,如下图所示。,如下图所示。1 1、CPUCPU响应中断的条件响应中断的条件第第9 9章章 中断与中断管理中断与中断管理 (3 3)中断是开放的)中断是开放的v外部中断外部中断是否响应,还取决于是否响应,还取决于CPUCPU是允许中断还是是允许中断还是禁止中断。禁止中断。CPUCP
10、U通过内部设置的一个中断允许触发通过内部设置的一个中断允许触发器(器(标志寄存器标志寄存器FRFR的的IFIF位位),来开放或关闭可屏蔽),来开放或关闭可屏蔽中断中断INTRINTR。执行执行STISTI指令后,指令后,IFIF置置“1”1”,称为开中断,允,称为开中断,允许许CPUCPU响应响应INTRINTR请求;请求;执行执行CLICLI指令后,指令后,IFIF清清“0”0”时,称为关中断,时,称为关中断,禁止禁止CPUCPU响应响应INTRINTR请求。请求。1 1、CPUCPU响应中断的条件响应中断的条件第第9 9章章 中断与中断管理中断与中断管理 (4 4)CPUCPU在执行当前指
11、令的最后一个时钟周期在执行当前指令的最后一个时钟周期vCPUCPU在执行在执行当前指令当前指令的最后一个时钟周期才去查询的最后一个时钟周期才去查询INTRINTR引脚。引脚。v若查询到该引脚信号为高电平,则表示收到有效中若查询到该引脚信号为高电平,则表示收到有效中断请求信号。断请求信号。v在开中断(即在开中断(即IFIF1 1)的情况下,)的情况下,CPUCPU在下一个总线在下一个总线周期不进入取指周期,而是进入中断响应周期处理周期不进入取指周期,而是进入中断响应周期处理中断。中断。1 1、CPUCPU响应中断的条件响应中断的条件第第9 9章章 中断与中断管理中断与中断管理 1 1、CPUCP
12、U响应中断的条件响应中断的条件中断响应、服务中断响应、服务及返回流程图及返回流程图 第第9 9章章 中断与中断管理中断与中断管理 vCPUCPU进入中断响应周期后,自动完成如下操作:进入中断响应周期后,自动完成如下操作:(1 1)关闭中断关闭中断 vFRFR中的中断标志位中的中断标志位IFIF清零;清零;(2 2)保护断点保护断点v将当前将当前CSCS和和IPIP的内容压入堆栈保存,以便中断处理的内容压入堆栈保存,以便中断处理完毕后能返回被中断的原程序继续执行;完毕后能返回被中断的原程序继续执行;(3 3)送中断类型号送中断类型号v在中断响应周期的第二个总线周期中,由中断控制在中断响应周期的第
13、二个总线周期中,由中断控制器给出器给出中断类型号中断类型号,CPUCPU根据根据中断类型号中断类型号获取中断获取中断服务子程序的入口地址,并装入服务子程序的入口地址,并装入CSCS与与IPIP;v一旦装入完毕,中断服务程序就开始执行。一旦装入完毕,中断服务程序就开始执行。2 2、CPUCPU对中断的响应对中断的响应第第9 9章章 中断与中断管理中断与中断管理 v中断服务程序中断服务程序,就是为实现中断源所期望达到的功能,就是为实现中断源所期望达到的功能而编写的程序。而编写的程序。v步骤:步骤:(1 1)保护现场保护现场 为使中断处理程序不破坏主程序中寄存器的内容,应先将断为使中断处理程序不破坏
14、主程序中寄存器的内容,应先将断点处各寄存器的内容压入堆栈保护起来;点处各寄存器的内容压入堆栈保护起来;(2 2)中断服务中断服务不同的中断请求,有各自不同的中断服务内容;不同的中断请求,有各自不同的中断服务内容;需要根据中断源所要完成的功能,事先编写相应的中断服务需要根据中断源所要完成的功能,事先编写相应的中断服务程序存入内存;程序存入内存;(3 3)恢复现场恢复现场中断处理完后,恢复主程序断点处各寄存器的内容。中断处理完后,恢复主程序断点处各寄存器的内容。 3 3、CPUCPU对中断的处理对中断的处理第第9 9章章 中断与中断管理中断与中断管理 v在中断服务子程序的最后,要开中断(在中断服务
15、子程序的最后,要开中断(CPUCPU能能响应新的中断请求)并安排一条中断返回指令响应新的中断请求)并安排一条中断返回指令IRETIRET。v执行指令执行指令IRETIRET后,之前压入堆栈的断点值及程后,之前压入堆栈的断点值及程序状态字弹回到序状态字弹回到CSCS、IPIP及及FLAGSFLAGS中,中,CPUCPU继续执继续执行主程序。行主程序。 4 4、中断的返回、中断的返回第第9 9章章 中断与中断管理中断与中断管理 9.1.4 9.1.4 中断源识别及优先权判断中断源识别及优先权判断1 1、中断源识别中断源识别v原因:原因: 当系统中有多个中断源时,一旦发生中断,当系统中有多个中断源时
16、,一旦发生中断,CPUCPU需确定是哪一个中断源提出了中断请求。需确定是哪一个中断源提出了中断请求。 v任务:任务: 确定该响应的是哪个中断源;确定该响应的是哪个中断源; 找到该中断服务程序的入口地址。找到该中断服务程序的入口地址。 第第9 9章章 中断与中断管理中断与中断管理 1 1、中断源识别的方法、中断源识别的方法(1 1)软件查询法软件查询法 v 任一中断请求,都可向任一中断请求,都可向CPUCPU发出发出INTRINTR信号;信号;v 将中断请求信号相将中断请求信号相“或或”后,作为后,作为INTRINTR信号。信号。第第9 9章章 中断与中断管理中断与中断管理 (1 1)软件查询法
17、软件查询法v优点优点 硬件电路简单,无需优先权的硬件排队电硬件电路简单,无需优先权的硬件排队电路,可随时修改优先级(改变查询的先后路,可随时修改优先级(改变查询的先后顺序);顺序);v缺点缺点 软件查询由询问转至相应中断服务程序入软件查询由询问转至相应中断服务程序入口时间长,尤其在中断源较多的情况下,口时间长,尤其在中断源较多的情况下,中断响应的实时性受到影响。中断响应的实时性受到影响。1 1、中断源识别的方法、中断源识别的方法第第9 9章章 中断与中断管理中断与中断管理 1 1、中断源识别、中断源识别(2 2)中断向量法中断向量法v通过硬件控制电路形成一个供通过硬件控制电路形成一个供CPUC
18、PU识别中断识别中断源的中断向量号,并由此中断向量号实现中源的中断向量号,并由此中断向量号实现中断响应。断响应。第第9 9章章 中断与中断管理中断与中断管理 (2 2)中断向量法中断向量法v优点优点 CPUCPU可直接通过中断向量表转向相应的处理程可直接通过中断向量表转向相应的处理程序,不需要序,不需要CPUCPU去逐个检测和确定中断源,因去逐个检测和确定中断源,因此大大加快了中断响应的速度。此大大加快了中断响应的速度。 1 1、中断源识别的方法、中断源识别的方法第第9 9章章 中断与中断管理中断与中断管理 v 系统按任务的轻重缓急,为每个中断源进行排系统按任务的轻重缓急,为每个中断源进行排队
19、,并给出顺序编号,称为队,并给出顺序编号,称为中断优先级中断优先级。v 可事先给各中断源安排一个中断优先级次序,可事先给各中断源安排一个中断优先级次序,当多个中断源同时申请时,按优先级从高到低当多个中断源同时申请时,按优先级从高到低的次序来处理,选中当前优先级最高的中断进的次序来处理,选中当前优先级最高的中断进行处理,这个过程称为行处理,这个过程称为中断优先级判优中断优先级判优。v 在一般情况下,系统的内部中断优先于外部中在一般情况下,系统的内部中断优先于外部中断,不可屏蔽中断优先于可屏蔽中断。断,不可屏蔽中断优先于可屏蔽中断。v 中断源的优先级判优可以通过中断源的优先级判优可以通过软件查询软
20、件查询方式和方式和硬件排队电路硬件排队电路两种方法实现。两种方法实现。2 2、 中断优先权中断优先权第第9 9章章 中断与中断管理中断与中断管理 (1 1) 软件查询方式软件查询方式v基本原理基本原理 当当CPUCPU接收到中断请求接收到中断请求信号后,执行优先级判信号后,执行优先级判优的查询程序,逐个检优的查询程序,逐个检测外设中断请求标志位测外设中断请求标志位的状态;的状态; 检测的顺序:优先级的检测的顺序:优先级的高低;高低; 最先检测到的中断源具最先检测到的中断源具有最高的优先级;有最高的优先级; 最后检测到的中断源具最后检测到的中断源具有最低的优先级。有最低的优先级。第第9 9章章
21、中断与中断管理中断与中断管理 v 优点优点硬件电路简单,无需优先权硬件排队硬件电路简单,无需优先权硬件排队电路,可以通过修改程序的方法随时电路,可以通过修改程序的方法随时修改优先级;修改优先级;v 缺点缺点软件查询影响中断响应的实时性。软件查询影响中断响应的实时性。 (1 1) 软件查询方式软件查询方式第第9 9章章 中断与中断管理中断与中断管理 v 硬件优先权排队电路是专门的硬件电路;硬件优先权排队电路是专门的硬件电路;v 优点优点节省节省CPUCPU的时间,而且中断响应较快;的时间,而且中断响应较快;v 缺点缺点成本比较高。成本比较高。v 菊花链菊花链(或称链式)优先权排队电路(或称链式)
22、优先权排队电路在每个中断源的电路中设置一个菊花链逻辑电路在每个中断源的电路中设置一个菊花链逻辑电路当某设备有中断请求时,会向当某设备有中断请求时,会向CPUCPU发送中断请求发送中断请求信号信号若若CPUCPU允许中断,则允许中断,则CPUCPU发出中断响应信号信号在发出中断响应信号信号在菊花链中传递菊花链中传递如果某设备没有中断请求,则信号通过菊花链逻如果某设备没有中断请求,则信号通过菊花链逻辑电路继续往下一级传递。辑电路继续往下一级传递。 (2 2) 硬件优先权排队电路硬件优先权排队电路第第9 9章章 中断与中断管理中断与中断管理 菊花链逻辑电路菊花链逻辑电路第第9 9章章 中断与中断管理
23、中断与中断管理 菊花链优先权排队电路菊花链优先权排队电路010111假设设备假设设备2和设备和设备3均有中断请求均有中断请求第第9 9章章 中断与中断管理中断与中断管理 vIntel 80X86Intel 80X86系列微机有一个灵活的中断系统,可系列微机有一个灵活的中断系统,可以处理以处理256256种中断源,每个中断源都有对应的中断种中断源,每个中断源都有对应的中断类型号(类型号(0 0255D255D)供)供CPUCPU识别。识别。9.2 80869.2 8086的中断系统的中断系统第第9 9章章 中断与中断管理中断与中断管理 1 1、外部中断外部中断v 外部中断是指由外部设备通过硬件请
24、求外部中断是指由外部设备通过硬件请求的方式产生的中断;的方式产生的中断;v 外部中断也称为外部中断也称为硬件中断硬件中断。v 外部中断可分为:外部中断可分为:非屏蔽中断非屏蔽中断可屏蔽中断可屏蔽中断9.2.1 80869.2.1 8086的中断类型的中断类型第第9 9章章 中断与中断管理中断与中断管理 (1 1)非屏蔽中断)非屏蔽中断NMINMIv当外设向当外设向CPUCPU提出中断请求时,提出中断请求时,CPUCPU在当前指令执行在当前指令执行结束后,就立即无条件的予以响应,这样的中断就结束后,就立即无条件的予以响应,这样的中断就是是非屏蔽中断非屏蔽中断。v由由CPUCPU的的NMINMI引
25、脚引入,引脚引入,NMINMI上升沿时触发,维持上升沿时触发,维持2 2个个T T高电平。高电平。v不受中断允许标志不受中断允许标志IFIF的影响;的影响;v中断类型号固定为中断类型号固定为2 2;v在外部中断源中优先级最高;在外部中断源中优先级最高;v主要用于处理系统的意外或故障,如:电源掉电、主要用于处理系统的意外或故障,如:电源掉电、存储器读存储器读/ /写错误等。写错误等。 第第9 9章章 中断与中断管理中断与中断管理 (2 2)可屏蔽中断)可屏蔽中断INTRINTRv 受受CPUCPU中断允许标志位中断允许标志位IFIF的控制:的控制:IFIF=1=1时,时,CPUCPU响应中断请求
26、;响应中断请求;IFIF=0=0时,时,CPUCPU屏蔽中断请求,不予响应;屏蔽中断请求,不予响应;v 由由CPUCPU的的INTRINTR引脚引入,高电平有效。引脚引入,高电平有效。v 中断类型号由中断请求的设备提供。中断类型号由中断请求的设备提供。第第9 9章章 中断与中断管理中断与中断管理 2 2、内部中断、内部中断v 内部中断内部中断是由是由CPUCPU运行程序异常或执行内部运行程序异常或执行内部程序调用引起的一种中断;程序调用引起的一种中断;v 内部中断内部中断也称为也称为软件中断。软件中断。v 不受不受IFIF影响。影响。v 中断类型号由指令提供。中断类型号由指令提供。第第9 9章
27、章 中断与中断管理中断与中断管理 2 2、内部中断、内部中断 内部中断有:内部中断有:v除法错中断除法错中断 执行除法指令时,若除数为执行除法指令时,若除数为0 0或商超过寄存器所能或商超过寄存器所能表达的范围,则表达的范围,则CPUCPU立即产生一个立即产生一个0 0型中断。型中断。 v溢出中断溢出中断 如果上一条指令使溢出标志位如果上一条指令使溢出标志位OFOF为为1 1,则执行,则执行INTOINTO指令产生指令产生4 4型中断。型中断。 vINT nINT n指令中断指令中断 80868086的指令系统中有一条的指令系统中有一条INT nINT n指令,执行这条指指令,执行这条指令就会
28、立即产生中断。令就会立即产生中断。第第9 9章章 中断与中断管理中断与中断管理 2 2、内部中断、内部中断 v单步中断单步中断 当单步标志(陷阱标志)当单步标志(陷阱标志)TFTF置置“1”1”时,时,80 x8680 x86处处于单步工作方式。在单步工作时,每执行完一条于单步工作方式。在单步工作时,每执行完一条指令,指令,CPUCPU自动产生中断类型号为自动产生中断类型号为1 1的中断。的中断。v断点中断断点中断 断点中断是断点中断是80 x8680 x86提供的一种调试程序的手段。用提供的一种调试程序的手段。用于设置程序中的断点,中断类型号为于设置程序中的断点,中断类型号为3 3。第第9
29、9章章 中断与中断管理中断与中断管理 中断优先级中断优先级由高到低分别为:由高到低分别为:v 除法错、除法错、INT nINT n指令、溢出、断点中断指令、溢出、断点中断v 非屏蔽中断非屏蔽中断NMINMIv 可屏蔽中断可屏蔽中断INTRINTRv 单步中断单步中断第第9 9章章 中断与中断管理中断与中断管理 1 1、中断向量表的概念、中断向量表的概念(1 1)中断类型号)中断类型号在在80868086系统中,共设有系统中,共设有256256类中断,每类中断,每类中断分配到一个类中断分配到一个8 8位的编号,这个编位的编号,这个编号就叫做中断类型号。号就叫做中断类型号。中断类型号的范围:中断类
30、型号的范围: 0000FFHFFH(0 0255D255D)9.2.2 9.2.2 中断向量和中断向量表中断向量和中断向量表第第9 9章章 中断与中断管理中断与中断管理 v 需要响应的每一类中断都编写有相应的中需要响应的每一类中断都编写有相应的中断服务程序,并预先装入内存,断服务程序,并预先装入内存,中断服务中断服务程序在内存中的入口地址程序在内存中的入口地址叫中断向量。叫中断向量。v 每个中断类型对应一个中断向量。每个中断类型对应一个中断向量。v 中断向量的字长是中断向量的字长是4 4个字节个字节2 2个字节的段地址个字节的段地址2 2个字节的偏移地址个字节的偏移地址(2 2)中断向量)中断
31、向量第第9 9章章 中断与中断管理中断与中断管理 v 把系统中所有的中断向量集中起来放到存储器把系统中所有的中断向量集中起来放到存储器的某一区域内,的某一区域内,这个存放中断向量的存储区这个存放中断向量的存储区就就叫中断向量表或中断服务程序入口地址表。叫中断向量表或中断服务程序入口地址表。v 80868086系统把中断向量表安排在内存地址系统把中断向量表安排在内存地址00000H00000H003FFH003FFH区域(区域(1K1K)。)。v 每四个连续字节每四个连续字节存放一个中断向量,存放一个中断向量,高地址高地址2 2个字节单元放段地址(个字节单元放段地址(CSCS)低地址低地址2 2
32、个字节单元中放偏移地址个字节单元中放偏移地址(IP)(IP)。(3 3)中断向量表)中断向量表第第9 9章章 中断与中断管理中断与中断管理 v 为了便于在中断向量表中找到中断向量,通为了便于在中断向量表中找到中断向量,通常设置一种指针,来指出中断向量存放在中常设置一种指针,来指出中断向量存放在中断向量表的具体位置;断向量表的具体位置;v 存放中断向量的存放中断向量的4 4个存储单元的个存储单元的最低地址最低地址称称为向量表地址指针。为向量表地址指针。v 计算方法:计算方法: 中断类型号中断类型号4 4(4 4)中断向量表地址指针)中断向量表地址指针第第9 9章章 中断与中断管理中断与中断管理
33、v 如果已知一个中断类型号,则通过两次地址转如果已知一个中断类型号,则通过两次地址转换(换(中断类型号到中断向量表地址;中断向量中断类型号到中断向量表地址;中断向量表地址到中断处理程序入口地址表地址到中断处理程序入口地址)后,可到达)后,可到达中断服务程序。中断服务程序。 (4 4)中断向量表地址指针)中断向量表地址指针第第9 9章章 中断与中断管理中断与中断管理 (5 5)80868086中断向量表中断向量表第第9 9章章 中断与中断管理中断与中断管理 v中断向量并非常驻内存,而是开机上电时,由程序中断向量并非常驻内存,而是开机上电时,由程序装入指定的存储区内。装入指定的存储区内。vBIOS
34、BIOS程序只负责中断类型号程序只负责中断类型号00H00H1FH1FH共共3232种中断的种中断的中断向量的装入。中断向量的装入。v用户在应用系统中使用中断时,用户在应用系统中使用中断时,需要在初始化程序需要在初始化程序中将中断服务子程序的入口地址装入中断向量表指中将中断服务子程序的入口地址装入中断向量表指定的存储单元中定的存储单元中,以便在,以便在CPUCPU响应中断请求后,由响应中断请求后,由中断向量自动引导到中断服务子程序。中断向量自动引导到中断服务子程序。2 2、中断向量的设置、中断向量的设置第第9 9章章 中断与中断管理中断与中断管理 v将将中断向量中断向量通过通过数据传送指令数据
35、传送指令直接送入直接送入中断向量表中断向量表指定的单元中。指定的单元中。v例如,设某中断源的中断类型号例如,设某中断源的中断类型号n n为为40H40H,中断服务,中断服务子程序为子程序为INT_PINT_P,则设置中断向量的程序段如下:,则设置中断向量的程序段如下: CLICLI ;IFIF0, 0, 关中断关中断 MOVMOVAXAX,0 0 ;ESES指向指向0 0段段 MOVMOVES, AXES, AX MOV MOVBX, BX, 40H40H4 4 ;向量表地址送;向量表地址送BXBX MOV MOVAX,OFFSET INT_PAX,OFFSET INT_P ;中断服务子程序的
36、;中断服务子程序的偏移地址偏移地址送送AXAX MOV MOVES:WORD PTRBX,AXES:WORD PTRBX,AX ;中断服务子程序的;中断服务子程序的偏移地址偏移地址写入向量写入向量表表(1 1)用传送指令直接装入)用传送指令直接装入第第9 9章章 中断与中断管理中断与中断管理 MOVMOV AX, SEG INT_P AX, SEG INT_P ;中断服务子程序的;中断服务子程序的段基址段基址送送AXAXMOVMOV ES:WORD PTRBX+2, AX ES:WORD PTRBX+2, AX ;中断服务子程序的;中断服务子程序的段基址段基址写入写入向量表向量表STISTI
37、;IF=1IF=1,开中断,开中断INT_PINT_P PROCPROC;中断服务子程序;中断服务子程序IRETIRET;中断返回;中断返回INT_PINT_P ENDPENDP(1 1)用传送指令直接装入)用传送指令直接装入第第9 9章章 中断与中断管理中断与中断管理 (1) 25H(1) 25H号号DOSDOS功能调用功能调用v 入口参数是:入口参数是: AH= 25HAH= 25H。AL =AL =中断类型号。中断类型号。 DS =DS =中断服务子程序入口地址的段地址。中断服务子程序入口地址的段地址。DX =DX =中断服务子程序入口地址的偏移地址。中断服务子程序入口地址的偏移地址。(
38、2 2)用)用DOSDOS系统功能调用系统功能调用第第9 9章章 中断与中断管理中断与中断管理 CLI CLI;IF=0IF=0,关中断,关中断 MOV AL,MOV AL, 40H 40H;中断类型号;中断类型号40H40H送送ALAL MOV MOV DX, SEG INT_P DX, SEG INT_P;中断服务子程序的;中断服务子程序的段基址送段基址送DSDS MOV MOV DS, DX DS, DX MOV MOV DX, OFFSET DX, OFFSET INT_PINT_P ;中断服务子程序的;中断服务子程序的偏移地址送偏移地址送DXDX MOV MOV AH, AH,25H
39、25H;25H25H功能调用功能调用 INTINT 21H 21H STI STI;IF=1IF=1,开中断,开中断前面的例题用前面的例题用DOSDOS调用,程序段:调用,程序段:第第9 9章章 中断与中断管理中断与中断管理 (2 2)35H35H号号DOSDOS功能调用功能调用v 在实际应用中,为了不破坏向量表中的原始设在实际应用中,为了不破坏向量表中的原始设置,通常在装入新的中断向量之前,先将原有置,通常在装入新的中断向量之前,先将原有的中断向量取出保存,待中断处理完毕,再将的中断向量取出保存,待中断处理完毕,再将原中断向量恢复。原中断向量恢复。v 入口参数是:入口参数是: AH= 35H
40、AH= 35H。AL =AL =中断类型号。中断类型号。v 出口参数是:出口参数是:ES =ES =中断服务子程序入口地址的段地址。中断服务子程序入口地址的段地址。BX =BX =中断服务子程序入口地址的偏移地址。中断服务子程序入口地址的偏移地址。(2 2)用)用DOSDOS系统功能调用装入法系统功能调用装入法第第9 9章章 中断与中断管理中断与中断管理 v例如,若从中断类型号为例如,若从中断类型号为40H40H对应的向量表中取出中断对应的向量表中取出中断向量,程序段如下向量,程序段如下: : MOV MOVAH, AH, 35H35H MOV MOVAL, AL, 40H40H INT IN
41、T21H21Hv该程序段执行之后,从中断向量表中获取的中断向量该程序段执行之后,从中断向量表中获取的中断向量存放在存放在ESES和和BXBX中,中,ESES中存放段基址,中存放段基址,BXBX中存放偏移地中存放偏移地址。址。 (2 2)用)用DOSDOS系统功能调用装入法系统功能调用装入法第第9 9章章 中断与中断管理中断与中断管理 v在在80868086系统中各种中断的响应和处理过程是不完全相系统中各种中断的响应和处理过程是不完全相同的,主要区别还在于同的,主要区别还在于如何获取相应的中断类型号如何获取相应的中断类型号。1 1、中断源识别、中断源识别vCPUCPU在当前指令执行完后,按内部中
42、断(除法出错、在当前指令执行完后,按内部中断(除法出错、INT nINT n、断点中断、溢出中断)、断点中断、溢出中断)、NMINMI、INTRINTR、单步中、单步中断的顺序来逐个查询是否有中断请求,对于断的顺序来逐个查询是否有中断请求,对于INTRINTR还要还要判断判断CPUCPU是否允许中断(是否允许中断(IF=1IF=1)。)。2 2、80868086的中断判优的中断判优vCPUCPU检测的顺序是按优先级的高低来进行的,最先检测检测的顺序是按优先级的高低来进行的,最先检测到的中断源具有最高的优先级,最后检测到的中断源到的中断源具有最高的优先级,最后检测到的中断源具有最低的优先级。具有
43、最低的优先级。9.2.3 80869.2.3 8086中的中断响应和处理过程中的中断响应和处理过程第第9 9章章 中断与中断管理中断与中断管理 v当当内部中断内部中断发生时,是按预定方式得到中断类型号(发生时,是按预定方式得到中断类型号(专用中断:专用中断:0 0、1 1、3 3、4 4)v在用在用软件中断指令软件中断指令INT nINT n时,中断指令本身就为时,中断指令本身就为CPUCPU提提供了中断类型号供了中断类型号n n。v非屏蔽中断非屏蔽中断类型号固定是类型号固定是2 2。v可屏蔽的中断可屏蔽的中断由请求中断的设备提供中断类型号。由请求中断的设备提供中断类型号。3 3、中断源提供中
44、断类型号、中断源提供中断类型号第第9 9章章 中断与中断管理中断与中断管理 可屏蔽中断响应周期可屏蔽中断响应周期第第9 9章章 中断与中断管理中断与中断管理 可屏蔽中断响应示意图可屏蔽中断响应示意图第第9 9章章 中断与中断管理中断与中断管理 v断点保护断点保护。将标志寄存器(。将标志寄存器(PSWPSW)、当前段寄存器()、当前段寄存器(CSCS)及指令指针()及指令指针(IPIP)内容压入堆栈。)内容压入堆栈。 v关闭中断,并清除关闭中断,并清除IFIF及及TFTF位(位(IF0IF0,TF0TF0),),以便以便禁止响应可屏蔽中断或单步中断。禁止响应可屏蔽中断或单步中断。v将取得的将取得
45、的中断类型号乘中断类型号乘4 4,到中断向量表中取中断向量,到中断向量表中取中断向量(中断处理程序的入口地址),其中高(中断处理程序的入口地址),其中高2 2字节段地址送字节段地址送到到CSCS中,低中,低2 2字节偏移地址送入字节偏移地址送入IPIP中。一旦中断处理程中。一旦中断处理程序的入口地址置入序的入口地址置入IPIP及及CSCS中,程序就被转入并开始执中,程序就被转入并开始执行中断处理程序。行中断处理程序。v中断服务程序一般包括:保护现场、中断服务、恢复中断服务程序一般包括:保护现场、中断服务、恢复现场等部分。同时,为了能够处理多重中断,还可在现场等部分。同时,为了能够处理多重中断,
46、还可在中断处理程序的适当地方加入开中断指令(中断处理程序的适当地方加入开中断指令(STISTI)。)。4 4、中断处理、中断处理第第9 9章章 中断与中断管理中断与中断管理 v中断服务程序执行完毕,最后执行一条中断返回指中断服务程序执行完毕,最后执行一条中断返回指令令IRETIRET,将压入堆栈的原标志寄存器内容及断点地,将压入堆栈的原标志寄存器内容及断点地址弹出,继续执行原程序。址弹出,继续执行原程序。 5 5、中断返回、中断返回第第9 9章章 中断与中断管理中断与中断管理 v Intel 8259AIntel 8259A是一种可编程序中断控制器是一种可编程序中断控制器PICPIC,又称又称
47、“优先权中断控制器优先权中断控制器”,具有强大的中断,具有强大的中断管理功能。管理功能。v 8259A8259A的主要功能有:的主要功能有:可管理具有可管理具有8 8级优先权的中断源,通过级联可扩充级优先权的中断源,通过级联可扩充至管理至管理6464级优先权的中断源。级优先权的中断源。通过编程对每一级中断源都可实现屏蔽或允许。通过编程对每一级中断源都可实现屏蔽或允许。能向能向CPUCPU提供相应的中断向量,从而能迅速地转至提供相应的中断向量,从而能迅速地转至中断服务程序。中断服务程序。8259A8259A有多种工作方式,可通过编程来进行选择。有多种工作方式,可通过编程来进行选择。9.3 9.3
48、 可编程中断控制器可编程中断控制器8259A8259A第第9 9章章 中断与中断管理中断与中断管理 9.3.1 8259A9.3.1 8259A的结构的结构8位位接受并锁存来自接受并锁存来自IR0IR7的中断请求信号的中断请求信号第第i位位=1:IRi有请求有请求第第i位位=0:IRi没有请求没有请求当中断请求响应后,当中断请求响应后,IRR相应位复位相应位复位 第第9 9章章 中断与中断管理中断与中断管理 9.3.1 8259A9.3.1 8259A的结构的结构8位位存放存放CPU送来的送来的屏蔽信号屏蔽信号第第i位位=1:屏蔽:屏蔽IRi的中断请求的中断请求第第i位位=0:开放:开放IRi
49、的中断请求的中断请求第第9 9章章 中断与中断管理中断与中断管理 9.3.1 8259A9.3.1 8259A的结构的结构8位位记录正在处理中记录正在处理中的所有中断请求的所有中断请求第第i位位=1:IRi正在正在处理处理在多重中断时,在多重中断时,ISR中可能有多位中可能有多位同时被置同时被置“1”第第9 9章章 中断与中断管理中断与中断管理 9.3.1 8259A9.3.1 8259A的结构的结构8位位管理和识别管理和识别IRR中各个中断中各个中断源的优先级别源的优先级别 第第9 9章章 中断与中断管理中断与中断管理 9.3.1 8259A9.3.1 8259A的结构的结构接受和发出控接受
50、和发出控制信号制信号INT和和INTA第第9 9章章 中断与中断管理中断与中断管理 9.3.1 8259A9.3.1 8259A的结构的结构8位,双向,三态位,双向,三态8259A和系统数据总和系统数据总线的接口,线的接口,传输信号:传输信号: CPU对对8259A的的控制字控制字8259A送给送给CPU的状态信息的状态信息8259A送给送给CPU的中断向量的中断向量 第第9 9章章 中断与中断管理中断与中断管理 9.3.1 8259A9.3.1 8259A的结构的结构接收接收CPU送来的读送来的读/写写信号和地址信息信号和地址信息片内地址的选择片内地址的选择 第第9 9章章 中断与中断管理中
51、断与中断管理 9.3.1 8259A9.3.1 8259A的结构的结构用于控制多片级联用于控制多片级联 第第9 9章章 中断与中断管理中断与中断管理 9.3.1 8259A9.3.1 8259A的结构的结构编程角度编程角度看,看,8259A有有7个个8位的寄存器:位的寄存器: 4个个初始化命令字初始化命令字寄寄存器(存器(ICW1 ICW4 )系统初启时设定系统初启时设定3个个操作命令字操作命令字寄存寄存器(器(OCW1 OCW3 )系统运行时,由系统运行时,由应用程序设定应用程序设定第第9 9章章 中断与中断管理中断与中断管理 9.3.2 8259A9.3.2 8259A的引脚的引脚D723
52、1498765111014131228GND19272021222324252618151617A0D1D6CAS1D0D4D5VCCINTIR28259ACSRDWRD3D2CAS0INTAIR3IR1IR0IR6IR7IR5IR4CAS2SP/EN图10-16 8259A引脚D0D7数据线数据线三态、双向三态、双向与与DB的的D0D7相连相连传递控制信号、状传递控制信号、状态信号、中断向量态信号、中断向量第第9 9章章 中断与中断管理中断与中断管理 9.3.2 8259A9.3.2 8259A的引脚的引脚D7231498765111014131228GND19272021222324252
53、618151617A0D1D6CAS1D0D4D5VCCINTIR28259ACSRDWRD3D2CAS0INTAIR3IR1IR0IR6IR7IR5IR4CAS2SP/EN图10-16 8259A引脚IR0IR7中断请求输入信号中断请求输入信号外设或者从片送入外设或者从片送入触发方式:触发方式:边沿触发边沿触发电平触发电平触发第第9 9章章 中断与中断管理中断与中断管理 9.3.2 8259A9.3.2 8259A的引脚的引脚D7231498765111014131228GND19272021222324252618151617A0D1D6CAS1D0D4D5VCCINTIR28259ACS
54、RDWRD3D2CAS0INTAIR3IR1IR0IR6IR7IR5IR4CAS2SP/EN图10-16 8259A引脚RD读信号读信号输入输入由由CPU送入送入低电平有效低电平有效有效时有效时CPU读读取取8259A状态状态第第9 9章章 中断与中断管理中断与中断管理 9.3.2 8259A9.3.2 8259A的引脚的引脚D7231498765111014131228GND19272021222324252618151617A0D1D6CAS1D0D4D5VCCINTIR28259ACSRDWRD3D2CAS0INTAIR3IR1IR0IR6IR7IR5IR4CAS2SP/EN图10-16
55、 8259A引脚WR写信号写信号输入输入由由CPU送入送入低电平有效低电平有效有效时有效时CPU向向8259A写入控制字写入控制字第第9 9章章 中断与中断管理中断与中断管理 9.3.2 8259A9.3.2 8259A的引脚的引脚D7231498765111014131228GND19272021222324252618151617A0D1D6CAS1D0D4D5VCCINTIR28259ACSRDWRD3D2CAS0INTAIR3IR1IR0IR6IR7IR5IR4CAS2SP/EN图10-16 8259A引脚INT中断请求信号中断请求信号输出输出单片时单片时由由8259A输出输出给给CP
56、U级联时级联时,主片,主片INT连连接接CPU的的INTR,从片,从片INT连接主片的连接主片的IRi第第9 9章章 中断与中断管理中断与中断管理 9.3.2 8259A9.3.2 8259A的引脚的引脚D7231498765111014131228GND19272021222324252618151617A0D1D6CAS1D0D4D5VCCINTIR28259ACSRDWRD3D2CAS0INTAIR3IR1IR0IR6IR7IR5IR4CAS2SP/EN图10-16 8259A引脚INTA中断响应信号中断响应信号输入输入CPU的中断应答信的中断应答信号输出给号输出给8259A第第9 9章
57、章 中断与中断管理中断与中断管理 9.3.2 8259A9.3.2 8259A的引脚的引脚D7231498765111014131228GND19272021222324252618151617A0D1D6CAS1D0D4D5VCCINTIR28259ACSRDWRD3D2CAS0INTAIR3IR1IR0IR6IR7IR5IR4CAS2SP/EN图10-16 8259A引脚CS片选信号片选信号输入输入低电平有效低电平有效有效时有效时CPU才能访才能访问问8259A第第9 9章章 中断与中断管理中断与中断管理 9.3.2 8259A9.3.2 8259A的引脚的引脚D7231498765111
58、014131228GND19272021222324252618151617A0D1D6CAS1D0D4D5VCCINTIR28259ACSRDWRD3D2CAS0INTAIR3IR1IR0IR6IR7IR5IR4CAS2SP/EN图10-16 8259A引脚A0端口地址选择信号端口地址选择信号输入输入每片每片8259A有有2个端个端口地址:口地址:A0=1A0=0第第9 9章章 中断与中断管理中断与中断管理 9.3.2 8259A9.3.2 8259A的引脚的引脚D7231498765111014131228GND19272021222324252618151617A0D1D6CAS1D0D
59、4D5VCCINTIR28259ACSRDWRD3D2CAS0INTAIR3IR1IR0IR6IR7IR5IR4CAS2SP/EN图10-16 8259A引脚CAS2CAS0级联信号级联信号主、从片的连接线主、从片的连接线主片:输出主片:输出从片:输入从片:输入第第9 9章章 中断与中断管理中断与中断管理 9.3.2 8259A9.3.2 8259A的引脚的引脚D7231498765111014131228GND19272021222324252618151617A0D1D6CAS1D0D4D5VCCINTIR28259ACSRDWRD3D2CAS0INTAIR3IR1IR0IR6IR7IR5
60、IR4CAS2SP/EN图10-16 8259A引脚从片从片/缓冲器允许信缓冲器允许信号,双向双功能信号号,双向双功能信号缓冲方式缓冲方式:输出,:输出,控制收发器的接收或控制收发器的接收或发送;发送; 非缓冲方式非缓冲方式:输入:输入,主片该引脚主片该引脚=1 ,从,从片该引脚片该引脚=0 SP/EN第第9 9章章 中断与中断管理中断与中断管理 v当有一条或若干条中断请求线(当有一条或若干条中断请求线(IRIR7 7IRIR0 0)变为高电)变为高电平,则中断请求寄存器平,则中断请求寄存器IRRIRR的相应位置位。的相应位置位。v若中断请求线中至少有一条是中断允许的(中断屏蔽若中断请求线中至
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度销售代理合同:生产商与销售商之间的产品代理协议3篇
- 2024年度美发店产品质量保证合同3篇
- 2024年合伙解除合同3篇
- 2024城市地下综合管廊高低压电缆供货与铺设合同
- 2024年度影视制作委托合同:电影制作与发行3篇
- 2024年度医院聘用护士合同样本3篇
- 2024年新版:建设工程施工合同指南
- 2024年度企业节能减排目标责任合同3篇
- 2024年原材料采购与供应合同3篇
- 2024年劳动合同法修订要点与案例剖析
- 2023年纽约交通局中文笔试试题
- 电气工程及其自动化职业生涯规划
- 管理英语4写作
- 金蝶KIS迷你版操作
- 高级英语(1)智慧树知到答案章节测试2023年齐鲁工业大学
- 《阳光心理健康人生》心理健康主题班会PPT
- 消防安全管理制度
- 四川省税务局财行处土增税清算复审指导口径(2021年6月22日)
- 警察职业介绍
- NY/T 396-2000农用水源环境质量监测技术规范
- GB/T 10051.5-2010起重吊钩第5部分:直柄单钩
评论
0/150
提交评论