第9章 中断与中断管理_第1页
第9章 中断与中断管理_第2页
第9章 中断与中断管理_第3页
第9章 中断与中断管理_第4页
第9章 中断与中断管理_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 中断是为了解决高速中断是为了解决高速CPU与慢速外设之间的矛盾而引出的一与慢速外设之间的矛盾而引出的一个概念。个概念。从无条件传送、条件传送到中断传送从无条件传送、条件传送到中断传送 无条件传送特点:无条件传送特点:无需条件,无需条件,CPU直接与外设数据传送。直接与外设数据传送。 条件传送特点:条件传送特点:CPU主动查询外设状态,传输条件具备后,主动查询外设状态,传输条件具备后,才数据传送。才数据传送。 中断传送特点:中断传送特点:外设主动向外设主动向CPU发出请求,发出请求,CPU与之进行数与之进行数据传送。据传送。 引入条件传送根本原因是:引入条件传送根本原因是:CPU与外设工作不同

2、步。与外设工作不同步。引入中断传送根本原因是:嫌条件传送时,引入中断传送根本原因是:嫌条件传送时,CPU的工作效率低。的工作效率低。 中断指中断指CPU暂时中止正在执行的主程序,转去执行请求中断暂时中止正在执行的主程序,转去执行请求中断的那个外设的中断服务程序,处理完后,又返回主程序的过程。的那个外设的中断服务程序,处理完后,又返回主程序的过程。何谓中断?何谓中断?某人看书某人看书电话铃响电话铃响暂停看书暂停看书书中作记号书中作记号电话谈话电话谈话继续看书继续看书执行主程序执行主程序中断信号中断信号INTR暂停执行主程序暂停执行主程序当前当前CS:IP入栈入栈执行执行I/O程序程序 返回主程序

3、返回主程序日常事务日常事务中断请求中断请求中断响应中断响应保护断点保护断点中断服务中断服务中断返回中断返回日常事务程序日常事务程序中断服务程序中断服务程序INTRCPU外设 中断传送方式中断传送方式: 可以解决可以解决CPU与外设之间速度匹配的问题与外设之间速度匹配的问题, 使计算机可以及时使计算机可以及时处理系统中许多随机的参数和信息。处理系统中许多随机的参数和信息。提高了计算机处理故障与应变的能力。提高了计算机处理故障与应变的能力。 为实现中断功能而设置的各种硬件和软件的集合,称为中断系为实现中断功能而设置的各种硬件和软件的集合,称为中断系统。统。一、与中断有关的触发器一、与中断有关的触发

4、器中断请求触发器中断请求触发器其输出可作为中断请求信号,其输出可作为中断请求信号,在满足一定条件的情况下把信在满足一定条件的情况下把信号发送给号发送给CPU,且在,且在CPU未响未响应时能一直保持。应时能一直保持。当当CPU满足一定条件下响应该满足一定条件下响应该中断请求信号,执行相关操作中断请求信号,执行相关操作后,能撤消该中断请求信号。后,能撤消该中断请求信号。中断系统通常包含中断系统通常包含3个重要触发器。个重要触发器。D QCLK /RD+5V中断请求中断请求外设读、写操作外设读、写操作状态线状态线中断请求信号产生电路中断请求信号产生电路其作用就是产生中断请求信号给其作用就是产生中断请

5、求信号给CPU。能够发出中断请求信号的外设称为中断源。能够发出中断请求信号的外设称为中断源。外设外设:如键盘、打印机等:如键盘、打印机等数据通道数据通道:如磁盘、磁带机:如磁盘、磁带机时钟电路时钟电路:如:如8253故障源故障源:如掉电,需保存信息:如掉电,需保存信息调试程序时设置的中断源:调试程序时设置的中断源:如断点、单步如断点、单步 中断请求触发器中断请求触发器中断屏蔽触发器中断屏蔽触发器与与门门状态线状态线中断请求信号中断请求信号中断屏蔽触发器中断屏蔽触发器 其功能是决定中断请求触发器的输出信号是否可以作为中断其功能是决定中断请求触发器的输出信号是否可以作为中断请求信号向请求信号向CP

6、U发送。发送。 通常通常CPU可以对中断屏蔽触发器进行操作,从而达到对中断可以对中断屏蔽触发器进行操作,从而达到对中断源的控制,如:源的控制,如: CPU不准备响应某个外设中断,可将中断屏蔽触发器复位,不准备响应某个外设中断,可将中断屏蔽触发器复位,不让该外设的中断请求触发器的输出信号通过与门。此操作不让该外设的中断请求触发器的输出信号通过与门。此操作称之为称之为中断屏蔽中断屏蔽。 CPU将中断屏蔽触发器置将中断屏蔽触发器置1,则准备响应该外设中断。,则准备响应该外设中断。中断允许触发器中断允许触发器 中断允许触发器位于中断允许触发器位于CPU内部,其功能类似于中断屏蔽触发内部,其功能类似于中

7、断屏蔽触发器。器。 8086CPU的中断允许标志位的中断允许标志位IF就是一个中断允许触发器。就是一个中断允许触发器。 IF=1,允许,允许CPU响应中断(响应中断(CPU开中)开中) IF=0,禁止,禁止CPU响应中断(响应中断(CPU关中)关中)8086CPU设置了两种类型硬件中断:设置了两种类型硬件中断:可屏蔽中断:受中断允许触发器控制,只有可屏蔽中断:受中断允许触发器控制,只有IF=1,CPU才响才响应中断请求信号。应中断请求信号。 不可屏蔽中断:不受中断允许触发器控制,有中断请求信号不可屏蔽中断:不受中断允许触发器控制,有中断请求信号,CPU必须响应。必须响应。二、中断条件二、中断条

8、件中断屏蔽触发器处于非屏蔽状态,使外设的中断请求信号能中断屏蔽触发器处于非屏蔽状态,使外设的中断请求信号能发给发给CPU。中断允许触发器处于开中状态,中断允许触发器处于开中状态, 使使CPU允许响应中断。此允许响应中断。此触发器状态可由触发器状态可由STI(IF=1)和)和CLI(IF=0)指令来改变。)指令来改变。中断请求要获得中断请求要获得CPU响应,必须满足两个条件:响应,必须满足两个条件:三、中断响应过程三、中断响应过程中断源进行中断申请中断源进行中断申请 外设置中断请求触发器有效,在外设置中断请求触发器有效,在CPU未响应时能一直保持。未响应时能一直保持。 并且并且中断屏蔽触发器处于

9、非屏蔽状态。中断屏蔽触发器处于非屏蔽状态。中断响应中断响应 无总线请求。无总线请求。 CPU开中。开中。 CPU执行完现行指令。执行完现行指令。 CPU响应中断后,首先自动完成响应中断后,首先自动完成3项工作:项工作: 自动关中断。自动关中断。 自动保护断点,即将自动保护断点,即将CS:IP及及FR的内容压栈。的内容压栈。 自动给出中断入口,即将中断服务程序的入口地址装入自动给出中断入口,即将中断服务程序的入口地址装入CS:IP,转入相应的中断服务程序执行。,转入相应的中断服务程序执行。中断处理中断处理 可见,一旦可见,一旦CPU响应中断响应中断后,会立刻转入中断服务程序后,会立刻转入中断服务

10、程序之中,而中断服务程序中所要之中,而中断服务程序中所要完成的工作通常是:完成的工作通常是:保护现场保护现场开中断开中断中断服务中断服务关中断关中断恢复现场恢复现场开中断返回开中断返回中断入口中断入口 一个微机系统往往有多个外设,当一个微机系统往往有多个外设,当CPU响应外设中断请求后响应外设中断请求后,必须识别出是哪一台外设请求中断。然后再转入对应于该外设,必须识别出是哪一台外设请求中断。然后再转入对应于该外设的中断服务程序。的中断服务程序。 常用的中断源识别方法有:常用的中断源识别方法有:查询中断查询中断和和矢量中断矢量中断。 一、中断源识别一、中断源识别查询中断查询中断 需设置中断查询接

11、口电路,需设置中断查询接口电路,利用程序来查询设备的请求中利用程序来查询设备的请求中断状态。断状态。 如图:一旦如图:一旦CPU响应了中响应了中断,先执行查询程序查找中断断,先执行查询程序查找中断源。源。IN AL,IPORT;从输入接口取中断信息;从输入接口取中断信息TEST AL,80H;是;是0号设备请求吗?号设备请求吗?JNZ SEV0;是转;是转0号设备服务程序号设备服务程序TEST AL,40H;是;是1号设备请求吗?号设备请求吗?JNZ SEV1;是转;是转1号设备服务程序号设备服务程序TEST AL,20H;是;是2号设备请求吗?号设备请求吗?JNZ SEV2;是转;是转2号设

12、备服务程序号设备服务程序TEST AL,10H;是;是3号设备请求吗?号设备请求吗?JNZ SEV3;是转;是转3号设备服务程序号设备服务程序四个中断源四个中断源矢量中断矢量中断 要求外设:不仅提供中断请求信号,而且还得提供一个设备要求外设:不仅提供中断请求信号,而且还得提供一个设备号(号(又称中断类型号又称中断类型号)。)。 CPU响应外设的中断申请的过程是:响应外设的中断申请的过程是:外设发出中断申请信号外设发出中断申请信号CPU回应中断响应信号(回应中断响应信号(/INTA)外设将设备号(中断类型号)经数外设将设备号(中断类型号)经数据总线送据总线送CPUCPU根据该中断类型号自动找到相

13、根据该中断类型号自动找到相应的中断程序的入口地址,转入中应的中断程序的入口地址,转入中断服务断服务注意:注意:矢量中断识别中断源的速度最快。矢量中断识别中断源的速度最快。8086CPU采用的就是矢量中断。采用的就是矢量中断。#3 中断类型号可以由专用的中断控制芯片提供,也可以由接口中断类型号可以由专用的中断控制芯片提供,也可以由接口芯片芯片74LS245提供。提供。中断类型号中断类型号80H产生电路产生电路8个中断类型号产生电路个中断类型号产生电路二、中断优先权二、中断优先权 多个外设同时申请中断时,因多个外设同时申请中断时,因8086CPU只有一条只有一条INTR线,线,这就有一个优先权问题

14、,谁优先权高,先响应谁。这就有一个优先权问题,谁优先权高,先响应谁。 制定优先权有两种方法:制定优先权有两种方法:软件方案软件方案和和硬件方案硬件方案。软件方案软件方案 指各个中断源的优先权由软件安排,按查询顺序决定,先被指各个中断源的优先权由软件安排,按查询顺序决定,先被查询的中断源具有高的优先权。查询的中断源具有高的优先权。IN AL,IPORTTEST AL,80HJNZ SEV0TEST AL,40HJNZ SEV1TEST AL,20HJNZ SEV2TEST AL,10HJNZ SEV3四个中断源四个中断源硬件方案(不作要求)硬件方案(不作要求)8086有两类中断有两类中断:硬件中

15、断硬件中断由外设的请求引起,又叫由外设的请求引起,又叫外中断。外中断。8086有两条外有两条外部中断请求线部中断请求线NMI(不可屏蔽中断)和(不可屏蔽中断)和INTR(可屏蔽中断)(可屏蔽中断) 软件中断软件中断由执行指令所引起,又叫由执行指令所引起,又叫内中断内中断 8086采用矢量中断。即通过中断类型号来寻找中断服务程采用矢量中断。即通过中断类型号来寻找中断服务程序入口地址。其方法:序入口地址。其方法: 8086为每个中断都安排一个中断类型号(为每个中断都安排一个中断类型号(00HFFH) ,能,能处理处理256个中断个中断。 8086要求在内存前要求在内存前1K字节(字节(RAM:00

16、000H003FFH)建一)建一个中断服务程序的地址表(或叫中断向量表),中断服务程个中断服务程序的地址表(或叫中断向量表),中断服务程序的入口地址事先存入该区域中,每个入口地址占序的入口地址事先存入该区域中,每个入口地址占4个字节个字节。高地址单元放入口地址的段地址,低地址单元放偏移地址。高地址单元放入口地址的段地址,低地址单元放偏移地址。 中断服务程序的入口地址从中断服务程序的入口地址从“中断类型号中断类型号 4”的的RAM区中找区中找到。到。中断类型号和中断服务程序入口地址的关系中断类型号和中断服务程序入口地址的关系一、不可屏蔽中断不可屏蔽中断 由由8086的的NMI脚输入,不受中断允许

17、触发器控制,有中断脚输入,不受中断允许触发器控制,有中断请求信号,请求信号,CPU必须响应。必须响应。 中断类型号中断类型号=02H,CPU内部直接产生,无须内部直接产生,无须/INTA回应。回应。NMI中断中断二、可屏蔽中断可屏蔽中断 由由8086的的INTR脚输入,受中断允许触发器控制,只有脚输入,受中断允许触发器控制,只有IF=1,CPU才响应中断请求信号。才响应中断请求信号。 中断类型号由外设提供。中断类型号由外设提供。INTR中断中断1 属于执行指令引起的中断,分三类属于执行指令引起的中断,分三类: 处理运算过程中某些错误的中断处理运算过程中某些错误的中断执行程序时,为及时处理运算中

18、某些错误,执行程序时,为及时处理运算中某些错误,CPU以中断方以中断方式中止正在运行的程序,提醒程序员改错。式中止正在运行的程序,提醒程序员改错。三、软件中断软件中断除法错中断(中断类型号除法错中断(中断类型号=0)执行除法指令时,若发现除数为零或商超过了寄存器所能执行除法指令时,若发现除数为零或商超过了寄存器所能表表 达的范围,则立即产生除法错中断。达的范围,则立即产生除法错中断。例:例: ADD AX,BX INTO ;测试加法的溢出;测试加法的溢出溢出中断溢出中断INTO(中断类型号(中断类型号=4)运算时,当运算时,当OF=1,执行,执行INTO指令,产生溢出中断,打印指令,产生溢出中

19、断,打印出一个错误信息,结束时不返回,而把控制权交给操作系统。出一个错误信息,结束时不返回,而把控制权交给操作系统。若若OF=0,则,则INTO不产生中断,不产生中断,CPU执行下一条指令。执行下一条指令。 单步中断(中断类型号单步中断(中断类型号=1) 当当TF=1时,每条指令执行后,时,每条指令执行后,CPU会自动产生一个类型会自动产生一个类型1的的中断(单步中断)。中断(单步中断)。 使用单步中断可一条一条指令地跟踪程序流程,观察各个寄使用单步中断可一条一条指令地跟踪程序流程,观察各个寄存器及存储单元变化,帮助分析错误原因。存器及存储单元变化,帮助分析错误原因。为调试程序而设置的中断为调

20、试程序而设置的中断 断点中断(中断类型号断点中断(中断类型号=3) 断点可设置在程序的任何地方,它相当把一条断点可设置在程序的任何地方,它相当把一条INT 3 指令插指令插入程序中。入程序中。CPU每执行到断点处,每执行到断点处,INT 3 指令便产生一个中断。指令便产生一个中断。 CPU执行完一条执行完一条INT n指令后,会立即产生中断,并且调用系指令后,会立即产生中断,并且调用系统中相应的中断处理程序来完成中断功能,中断指令的操作数统中相应的中断处理程序来完成中断功能,中断指令的操作数n指出中断类型。指出中断类型。软中断(中断指令软中断(中断指令INT引起的中断)引起的中断)又例:又例:

21、INT 12H完成对存储器容量的测试。返回时,完成对存储器容量的测试。返回时,AX中的数中的数据即为存储器容量(据即为存储器容量(KB为单位)。为单位)。例:例:DOS功能调用功能调用INT 21H,具有很强的功能。,具有很强的功能。中断逻辑中断逻辑8086CPUINTO指令指令除法除法错误错误单步单步TF=1104nNMI不可屏蔽中断请求不可屏蔽中断请求INTR可屏蔽中断请求可屏蔽中断请求INT n 指令指令一、一、8086CPU的中断处理顺序的中断处理顺序8086所有中断源的优先权从高到低次序为:所有中断源的优先权从高到低次序为: 软件中断(除法错,软件中断(除法错,INTO,INT n指

22、令)指令) 不可屏蔽中断(不可屏蔽中断(NMI) 可屏蔽中断(可屏蔽中断(INTR) 单步中断单步中断8086对中断的处理流程:对中断的处理流程:二、二、8086CPU的中断服务入口地址表(中断向量表)的中断服务入口地址表(中断向量表) 中断向量表建在内存的前中断向量表建在内存的前1K字节字节(RAM:00000H003FFH)。)。 中断向量表中存放的是各中断服务中断向量表中存放的是各中断服务程序的入口地址(中断向量)。程序的入口地址(中断向量)。 每个入口地址占每个入口地址占4个字节。前个字节。前2单元单元放偏移地址,后放偏移地址,后2单元放段地址。单元放段地址。 程序运行转入中断服务程序

23、时,入程序运行转入中断服务程序时,入口地址的偏移地址将装入口地址的偏移地址将装入IP中,段中,段地址装入地址装入CS。 8086对不同的中断是以中断类型号对不同的中断是以中断类型号来区别的。来区别的。 每种中断配以固定的每种中断配以固定的中断类型号。在中断发生时,借助中断类型号。在中断发生时,借助中断类型号,能使程序转入相对应中断类型号,能使程序转入相对应的中断服务程序。的中断服务程序。8086中断向量表的基本概念中断向量表的基本概念 中断类型号与中断向量表的关系如何中断类型号与中断向量表的关系如何? 简单地说,中断类型简单地说,中断类型号是访问中断向量表的索引号。也就是说,中断向量在中断号是

24、访问中断向量表的索引号。也就是说,中断向量在中断向量表中的存储顺序是以中断类型号为索引的。向量表中的存储顺序是以中断类型号为索引的。中断类型号乘中断类型号乘4就是该种中断的中断向量在中断向量表中的开就是该种中断的中断向量在中断向量表中的开始地址。始地址。如:如:中断类型号为中断类型号为0,其中断向量在向,其中断向量在向 量表的量表的00000H00003H地址。地址。 中断类型号为中断类型号为1,其中断向量在,其中断向量在00004H00007H地址地址, 中断类型号为中断类型号为255时,其中断向量时,其中断向量应在应在003FCH003FFH地址。地址。例:例:中断类型号为中断类型号为32

25、的中断源对应的中断入口地址存放在的中断源对应的中断入口地址存放在 0000:0080H(420H=80H)开始的)开始的4个单元中。个单元中。 若在若在00080H00083H这这4个单元中存放的值分别为:个单元中存放的值分别为: 10H、20H、 30H、 40H。 则则32号中断的程序入口地址为号中断的程序入口地址为4030H:2010H。 中断类型号的范围为中断类型号的范围为0255,即最,即最多多256个。个。 类型号类型号04是是8086规定的专用中断,规定的专用中断,有着固定的意义和处理功能。有着固定的意义和处理功能。 类型号类型号531为系统使用或保留。为系统使用或保留。 类型号

26、类型号32255可由用户自行使用。可由用户自行使用。8086中断向量表的安排中断向量表的安排三、中断入口地址设置三、中断入口地址设置 应该明确的概念:应该明确的概念: 中断类型号只与存放中断向量的地址有关,存放中断向量的中断类型号只与存放中断向量的地址有关,存放中断向量的地址等于中断类型号乘以地址等于中断类型号乘以4。 中断类型号不能决定中断向量本身和中断服务程序的功能。中断类型号不能决定中断向量本身和中断服务程序的功能。中断向量(中断服务程序的入口地址)和中断服务程序是软中断向量(中断服务程序的入口地址)和中断服务程序是软件开发者确定和设计的。件开发者确定和设计的。如:如: 在执行除法指令出

27、错时,会引起类在执行除法指令出错时,会引起类型号型号0中断,存放中断向量的地址为中断,存放中断向量的地址为00000H00003H,这是确定不变的。,这是确定不变的。 但中断向量本身和中断服务程序则但中断向量本身和中断服务程序则是系统软件开发者确定和设计的。是系统软件开发者确定和设计的。 在系统启动时,操作系统不仅要把在系统启动时,操作系统不仅要把这个中断服务程序装入内存,还要把服这个中断服务程序装入内存,还要把服务程序的入口地址装入务程序的入口地址装入00000H00003H单元。单元。用户如何设置中断入口地址(中断向量)用户如何设置中断入口地址(中断向量) 对用户而言,运行自己编制中断服务程序时,需要考虑两个对用户而言,运行自己编制中断服务程序时,需要考虑两个因素:因素:中断类型号(可在中断类型号(可在32255中选择)。中选择)。 中断入口地址。中断入口地址。中断入口地址的建立方法通常有中断入口地址的建立方法通常有:(基本了解)(基本了解) 用串指令建立用串指令建立 用伪指令建立用伪指令建立 用系统调用方法建立用系统调用方法建立 直接装入法。直接装入法。一、一、8259A芯片特性芯片特性单一的单一的+5V电源电源可管理可管理8个中断个中断多片多片8259通过级联可管理通过级联可管理多达多达64个中断个中断8259A CS12345678910111213142

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论