中断和异常3学时.ppt

上传人:wuy****n92 文档编号:60184002 上传时间:2022-11-15 格式:PPT 页数:71 大小:529KB
返回 下载 相关 举报
中断和异常3学时.ppt_第1页
第1页 / 共71页
中断和异常3学时.ppt_第2页
第2页 / 共71页
点击查看更多>>
资源描述

《中断和异常3学时.ppt》由会员分享,可在线阅读,更多相关《中断和异常3学时.ppt(71页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第第8章章 中断和异常中断和异常8.1 概述8.2 中断8.3 异常8.4 中断及异常的暂时屏蔽8.5 中断及异常的优先级8.6 实方式下的中断8.7 保护方式下的中断和异常8.8 中断优先级管理器8259A PIC1 1本章重点本章重点n n中断的概念中断的概念n n实方式下的中断处理实方式下的中断处理n n保护方式下的中断和异常保护方式下的中断和异常n n中断优先级管理器中断优先级管理器2 28.1 概 述一、一、什么是中断什么是中断二、二、中断源和中断优先权中断源和中断优先权三、三、中断服务程序中断服务程序四、四、断点和中断现场断点和中断现场五、五、硬件中断和软件中断硬件中断和软件中断3

2、 3一、什么是中断一、什么是中断在在在在CPUCPUCPUCPU正常运行程序时,由于正常运行程序时,由于正常运行程序时,由于正常运行程序时,由于内部内部内部内部或或或或外部外部外部外部某个某个某个某个非预料事件非预料事件非预料事件非预料事件或或或或指定的事件指定的事件指定的事件指定的事件的发生,的发生,的发生,的发生,如:外部事件,电源掉电,硬件故障如:外部事件,电源掉电,硬件故障如:外部事件,电源掉电,硬件故障如:外部事件,电源掉电,硬件故障,传输错,传输错,传输错,传输错,存贮错,运算错及操作面板要求服务等。存贮错,运算错及操作面板要求服务等。存贮错,运算错及操作面板要求服务等。存贮错,运

3、算错及操作面板要求服务等。使使使使CPUCPUCPUCPU暂停正在运行的暂停正在运行的暂停正在运行的暂停正在运行的程序,而转去执行程序,而转去执行程序,而转去执行程序,而转去执行处理引起中断事件的程序处理引起中断事件的程序处理引起中断事件的程序处理引起中断事件的程序,处理完毕,处理完毕,处理完毕,处理完毕然后再返回被中断了的程序,继续执行。这个过程就是然后再返回被中断了的程序,继续执行。这个过程就是然后再返回被中断了的程序,继续执行。这个过程就是然后再返回被中断了的程序,继续执行。这个过程就是中断。中断。中断。中断。4 4中断服务程序中断服务程序1中断服务程序中断服务程序 2中断事件中断事件1

4、CPU执行流程执行流程中断事件中断事件 25 5二、中断源和中断优先权二、中断源和中断优先权qq引起中断的因素很多,引起中断的因素很多,引起中断的因素很多,引起中断的因素很多,将发出中断申请的外设或内部的原因将发出中断申请的外设或内部的原因将发出中断申请的外设或内部的原因将发出中断申请的外设或内部的原因,称为称为称为称为中断源中断源中断源中断源qq 给每个中断源指定一个优先权,称为给每个中断源指定一个优先权,称为给每个中断源指定一个优先权,称为给每个中断源指定一个优先权,称为中断优先权中断优先权中断优先权中断优先权qq 当多个中断源同时发出中断请求时,当多个中断源同时发出中断请求时,当多个中断

5、源同时发出中断请求时,当多个中断源同时发出中断请求时,CPUCPUCPUCPU按照中断优先权按照中断优先权按照中断优先权按照中断优先权的高低顺序的高低顺序的高低顺序的高低顺序,依次响应依次响应依次响应依次响应。6 6三、中断服务程序三、中断服务程序 处理中断源,完成其所要求功能的程序,处理中断源,完成其所要求功能的程序,处理中断源,完成其所要求功能的程序,处理中断源,完成其所要求功能的程序,称称称称中断服务程序中断服务程序中断服务程序中断服务程序(中断例行程序、中断子程)。(中断例行程序、中断子程)。(中断例行程序、中断子程)。(中断例行程序、中断子程)。CPU执行流程执行流程中断服务程序中断

6、服务程序1 1中断服务程序中断服务程序2非预料事件非预料事件2非预料事件非预料事件17 7非预料事件非预料事件是指事件是指事件发生的时间发生的时间无法预知无法预知,即中断源何时产生中断不确定,是随机的。即中断源何时产生中断不确定,是随机的。但事件的但事件的性质及处理方法则是性质及处理方法则是已知已知的,的,确定的,确定的,即即 中断服务程序是事先编写好的中断服务程序是事先编写好的,只是何时执行未知。只是何时执行未知。中断源产生中断的中断源产生中断的随机性随机性,使中断服务程序的使中断服务程序的执行也具有随机性执行也具有随机性,即何时执行中断服务程序不是在程序中安排好的。即何时执行中断服务程序不

7、是在程序中安排好的。8 8四、断点和中断现场四、断点和中断现场n n断点断点:是是是是指指指指CPUCPUCPUCPU执执执执行行行行的的的的现现现现行行行行程程程程序序序序被被被被中中中中断断断断时时时时的的的的下下下下一一一一条条条条指指指指令令令令 的地址的地址的地址的地址,又称断点地址。又称断点地址。又称断点地址。又称断点地址。n n中断现场中断现场:是指是指是指是指CPUCPUCPUCPU转去执行中断服务程序前的运行状态,转去执行中断服务程序前的运行状态,转去执行中断服务程序前的运行状态,转去执行中断服务程序前的运行状态,包括包括包括包括CPUCPUCPUCPU内部各寄存器、断点地址

8、等内部各寄存器、断点地址等内部各寄存器、断点地址等内部各寄存器、断点地址等。9 91000:150H 、MOV AX,0ADD AX,DXMOV DI,AX、PUSH AX 、IRETCPU在执行此指令时,在执行此指令时,某中断源发申请中断某中断源发申请中断;CPU在执行完该指令后,在执行完该指令后,转去执行中断子程转去执行中断子程地址地址1000:150H为断点为断点断点概念断点概念:1010n n早期早期早期早期中断概念的引入,中断概念的引入,中断概念的引入,中断概念的引入,是为解决是为解决是为解决是为解决CPUCPU与外设间的速度匹配问题,提高与外设间的速度匹配问题,提高与外设间的速度匹

9、配问题,提高与外设间的速度匹配问题,提高CPUCPU的工作的工作的工作的工作 效率。效率。效率。效率。中断源主要是由外部硬件产生。中断源主要是由外部硬件产生。中断源主要是由外部硬件产生。中断源主要是由外部硬件产生。五、硬件中断和软件中断五、硬件中断和软件中断n n当今当今当今当今的中断技术,的中断技术,的中断技术,的中断技术,不再限于外部硬件产生中断不再限于外部硬件产生中断不再限于外部硬件产生中断不再限于外部硬件产生中断(称称称称硬件中断硬件中断硬件中断硬件中断或或或或外中断外中断外中断外中断 ),还可由还可由还可由还可由CPUCPU内部产生内部产生内部产生内部产生 (如被零除操作如被零除操作

10、如被零除操作如被零除操作),或者由程序预先,或者由程序预先,或者由程序预先,或者由程序预先 安排,即由安排,即由安排,即由安排,即由指令调用的中断服务程序指令调用的中断服务程序指令调用的中断服务程序指令调用的中断服务程序。(称。(称。(称。(称软件中断软件中断软件中断软件中断或或或或 内中断内中断内中断内中断)又称为异常中断)又称为异常中断)又称为异常中断)又称为异常中断n n将硬件中断或外中断统称将硬件中断或外中断统称将硬件中断或外中断统称将硬件中断或外中断统称中断中断中断中断 ,将,将,将,将软件中断或内中断统称软件中断或内中断统称软件中断或内中断统称软件中断或内中断统称异异异异常常常常1

11、111n n异常异常是指令执行期间检查到的不正常或非法是指令执行期间检查到的不正常或非法的状态,使指令不能正常执行而的状态,使指令不能正常执行而产生中断产生中断。这与所执行的指令有直接的关系。这与所执行的指令有直接的关系。n n它它源于源于CPUCPU的内部的内部,n n通常将软中断指令也归于异常通常将软中断指令也归于异常12128.2 中 断80386,8048680386,8048680386,8048680386,80486支持支持支持支持两种类型的外部中断两种类型的外部中断两种类型的外部中断两种类型的外部中断:可屏蔽可屏蔽可屏蔽可屏蔽中断及中断及中断及中断及不可屏蔽不可屏蔽不可屏蔽不可

12、屏蔽中断中断中断中断(非屏蔽中断非屏蔽中断非屏蔽中断非屏蔽中断),),),),并有相应的两个中断请求引脚信号并有相应的两个中断请求引脚信号并有相应的两个中断请求引脚信号并有相应的两个中断请求引脚信号-INTRINTRINTRINTR及及及及NMINMINMINMI.1 1 1 1、可屏蔽中断可屏蔽中断可屏蔽中断可屏蔽中断 经由经由经由经由INTRINTRINTRINTR信号信号信号信号(高电平有效高电平有效高电平有效高电平有效)请求的中断称为可屏蔽中断请求的中断称为可屏蔽中断请求的中断称为可屏蔽中断请求的中断称为可屏蔽中断.它它它它受受受受IFIFIFIF的影响和控制的影响和控制的影响和控制的

13、影响和控制.当当当当IFIFIFIF被软件采用被软件采用被软件采用被软件采用STISTISTISTI指令置指令置指令置指令置1 1 1 1时时时时,表明表明表明表明INTRINTRINTRINTR被允许被允许被允许被允许,CPU,CPU,CPU,CPU响应响应响应响应INTR.INTR.INTR.INTR.当当当当IFIFIFIF被软件采用被软件采用被软件采用被软件采用CLICLICLICLI指令置指令置指令置指令置0 0 0 0时时时时,表明表明表明表明INTRINTRINTRINTR被禁止被禁止被禁止被禁止,CPU,CPU,CPU,CPU不响应不响应不响应不响应INTRINTRINTRIN

14、TR。2 2 2 2、非屏蔽中断非屏蔽中断非屏蔽中断非屏蔽中断 经由经由经由经由NMINMINMINMI信号线信号线信号线信号线(上升沿触发有效上升沿触发有效上升沿触发有效上升沿触发有效)请求的中断称为非屏蔽请求的中断称为非屏蔽请求的中断称为非屏蔽请求的中断称为非屏蔽中断。它是中断。它是中断。它是中断。它是不被不被不被不被IFIFIFIF禁止的中断禁止的中断禁止的中断禁止的中断。13138.3 异 常 1、异常分类异常分类 产生异常后产生异常后,系统根据引起异常的程序系统根据引起异常的程序是否可被恢复是否可被恢复这一原则这一原则,进一步又把异常分为故障进一步又把异常分为故障(fault)、陷阱

15、、陷阱(trap)和中止和中止(abort)3类类异常。异常。故障异常故障异常 是引起故障的程序是引起故障的程序可被恢复可被恢复执行的异常执行的异常,它也是在它也是在引起故障的指令执行引起故障的指令执行之前之前就报告给系统的一种异常就报告给系统的一种异常.故障被检出时,故障被检出时,保护断点(保护断点(指向引起故障的指令指向引起故障的指令)故障处理完毕,返回到引起故故障处理完毕,返回到引起故障的指令,使该指令得以正确执行障的指令,使该指令得以正确执行。陷阱异常陷阱异常 是在指令是在指令执行期间执行期间被检测到的被检测到的,并在引起异常的指并在引起异常的指令执行之后向系统报告的一种异常令执行之后

16、向系统报告的一种异常.陷阱产生后,保护断点(陷阱产生后,保护断点(指向指向引起陷阱的指令的引起陷阱的指令的下一条应该执行的下一条应该执行的指令地址指令地址),程序转向异常),程序转向异常处理处理。中止异常中止异常 是微处理器面临严重错误时产生的异常。中止时,是微处理器面临严重错误时产生的异常。中止时,正执行程序正执行程序不能被恢复不能被恢复。14142、异常错误码异常错误码 产生异常时产生异常时产生异常时产生异常时CPUCPU在异常处理程序的在异常处理程序的在异常处理程序的在异常处理程序的栈中压入栈中压入栈中压入栈中压入一个异常错误码一个异常错误码一个异常错误码一个异常错误码n n 异常错误码

17、位于异常错误码位于异常错误码位于异常错误码位于特定的堆栈特定的堆栈特定的堆栈特定的堆栈中,中,中,中,n n 无错异常无错异常无错异常无错异常压压压压“0”“0”。选择器索引选择器索引保留保留选择器索引选择器索引15 域域 值值 描述描述D0:EXT =0 中断的程序引起异常中断的程序引起异常 =1 外部事件外部事件引起异常引起异常D1:IDT =0 由由TI位决定表位决定表 =1 选择器用于选择器用于IDT中中 门描述符门描述符D2:TI =0 选择器用于选择器用于GDT =1 选择器用于选择器用于LDTD3-D15 选择器索引选择器索引 3 2 1 08028680386/80486异常错

18、误码格式:异常错误码格式:异常错误码格式:异常错误码格式:EXTEXTIDTIDTTITI31指向与异常相关的表项1515 3、处理器定义的异常处理器定义的异常 处理器定义的异常是处理器定义的异常是80X8680X86处理器中处理器中保留自用保留自用的异常的异常,共共1616个个.1 1、异常、异常0 0 定义为定义为除法出错异常除法出错异常,是一种,是一种故障型异常故障型异常 2 2、异常、异常1 1 定义为定义为排错异常排错异常(调试异常调试异常),有有故障类或陷阱类故障类或陷阱类,其中,其中单步单步为为陷阱型异常陷阱型异常 3 3、异常、异常3 3 为为断点中断断点中断,是一个采用单字节

19、指令是一个采用单字节指令INTINT3 3的软件中断,属的软件中断,属陷阱型异常陷阱型异常 4 4、异常、异常4 4 定义为定义为溢出陷阱溢出陷阱,属,属陷阱型异常陷阱型异常 5 5、异常、异常5 5 定义为定义为边界检查故障边界检查故障,属,属故障型异常故障型异常 16166、异常、异常6 定义为定义为无效操作码故障无效操作码故障,属属故障型异常故障型异常7、异常、异常7 定义为定义为协处理器无效故障协处理器无效故障,属属故障型异常故障型异常8、异常、异常8 定义为定义为双重故障双重故障,属,属中止型异常中止型异常9、异常、异常9 定义为定义为协处理器段越界异常协处理器段越界异常,属,属中止

20、型异常中止型异常10、异常、异常10 定义为定义为无效无效TSS故障故障,属属故障型异常故障型异常11、异常、异常11 定义为定义为段不存在异常段不存在异常,属属故障型异常故障型异常171712、异常、异常12 定义为定义为栈段故障栈段故障,属属故障型异常故障型异常13、异常、异常13 定义为定义为通用保护故障通用保护故障,属属故障型异常故障型异常14、异常、异常14 定义为定义为页故障页故障,属属故障型异常故障型异常 页故障时的错误码格式页故障时的错误码格式15、异常、异常16 定义为定义为协处理器出错故障协处理器出错故障,属属故障型异常故障型异常注意注意:由由INT n INT n 定义的

21、软中断为陷阱型异常定义的软中断为陷阱型异常未定义未定义31 3 2 1 0U/S R/W P域域 值值 描述描述P =0 失效由不存在页引起失效由不存在页引起 =1 失效由页级别保护冲突引起失效由页级别保护冲突引起R/W =0 失效由读引起失效由读引起 =1 失效由写引起失效由写引起U/S =0 失效发生在管理方式失效发生在管理方式 =1 失效发生在用户方式失效发生在用户方式 18188.4 中断及异常的暂时屏蔽中断和排错异常中断和排错异常在某些条件下可被忽略或屏蔽在某些条件下可被忽略或屏蔽 6种种引起中断和排错异常可被忽略或屏蔽的条件引起中断和排错异常可被忽略或屏蔽的条件:1、EFLAGS中

22、的中的IF=0,屏蔽外部可屏蔽中断屏蔽外部可屏蔽中断.2、IF=0时时,执行执行STI指令指令,则在则在STI指令及下面一条指令执行期间指令及下面一条指令执行期间,屏蔽外部可屏蔽中断屏蔽外部可屏蔽中断.3、EFLAGS中的中的RF=1,屏蔽排错故障屏蔽排错故障.(RF为调整恢复标志:为调整恢复标志:RF=0,调试故障被接受,调试故障被接受,RF=1,调试故障被调试故障被忽略)忽略)4、系统系统正处理正处理一个非屏蔽外部中断,则屏蔽任何新的非屏蔽中断。一个非屏蔽外部中断,则屏蔽任何新的非屏蔽中断。5、执行执行以以SS为目的寄存器的为目的寄存器的MOV及及POP指令指令时,将在时,将在该指令及该指

23、令及下面一条指令下面一条指令执行期间屏蔽各种中断及排错异常执行期间屏蔽各种中断及排错异常.6、在指令前缀在指令前缀LOCK及被锁定的指令之间及被锁定的指令之间不允许中断。不允许中断。19198.5 中断及异常的优先级中断中断/异常类型异常类型优先级优先级排错故障排错故障非排错故障非排错故障陷阱指令陷阱指令INT n、INTONMI中断中断INTR中断中断 最高最高最低最低中断中断/异常的优先级异常的优先级排错陷阱排错陷阱2020一、一、实方式下的中断分类实方式下的中断分类实方式下的中断分类实方式下的中断分类 按中断源的不同,中断分为按中断源的不同,中断分为内部中断内部中断和和外部中断外部中断。

24、1 1、内部中断(软中断)、内部中断(软中断)、内部中断(软中断)、内部中断(软中断)指指指指CPUCPU执行某些执行某些执行某些执行某些特殊操作特殊操作特殊操作特殊操作或由或由或由或由INTINT指令引起的中断指令引起的中断指令引起的中断指令引起的中断 被零除被零除被零除被零除操作或操作或操作或操作或OF=1OF=1时执行时执行时执行时执行INTOINTO指令引起指令引起指令引起指令引起 使用使用使用使用DEBUGDEBUG中的中的中的中的单步或断点单步或断点单步或断点单步或断点设置操作引起设置操作引起设置操作引起设置操作引起 执行执行执行执行INT nINT n 指令引起指令引起指令引起指

25、令引起8.6 实实方式下的中断2121指外部芯片通过指外部芯片通过指外部芯片通过指外部芯片通过CPUCPU的的的的INTRINTR引脚或引脚或引脚或引脚或NMINMI引脚引脚引脚引脚发出中断申请引起的中断。发出中断申请引起的中断。发出中断申请引起的中断。发出中断申请引起的中断。当当当当INTRINTR上有高电平信号上有高电平信号上有高电平信号上有高电平信号当当当当NMINMI上有上升沿信号上有上升沿信号上有上升沿信号上有上升沿信号2 2、外部中断(硬中断)、外部中断(硬中断)8088GNDA14A13A12A11A10A9A8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLK

26、GND最大组态(最小组态)最大组态(最小组态)VCCA15A16/S3A17/S4A18/S5A19/S6(HIGH)(SSO)MN/MXRDRQ/GT0(HOLD)RQ/GT1(HLDA)LOCK(WR)S2(IO/M)S1(DT/R)S0(DEN)QS0(ALE)QS1(INTA)TESTREADYRESET2222n n 可屏蔽中断可屏蔽中断n n 由由由由INTRINTR引脚引起的中断,称引脚引起的中断,称引脚引起的中断,称引脚引起的中断,称可屏蔽中断可屏蔽中断可屏蔽中断可屏蔽中断。n n CPU CPU是否响应是否响应是否响应是否响应INTRINTR引脚上的中断请求取决于引脚上的中断

27、请求取决于引脚上的中断请求取决于引脚上的中断请求取决于IFIF标志:标志:标志:标志:n n IF=1IF=1,CPUCPU响应响应响应响应INTRINTR引脚上的中断请求引脚上的中断请求引脚上的中断请求引脚上的中断请求n n IF=0IF=0,CPUCPU不响应不响应不响应不响应INTRINTR引脚上的中断请求引脚上的中断请求引脚上的中断请求引脚上的中断请求n n 即当即当即当即当IF=0IF=0时,将时,将时,将时,将INTRINTR引脚上的中断申请屏蔽引脚上的中断申请屏蔽引脚上的中断申请屏蔽引脚上的中断申请屏蔽。n n 非屏蔽中断非屏蔽中断n n 由由由由NMINMI引脚引起的中断,称引

28、脚引起的中断,称引脚引起的中断,称引脚引起的中断,称非屏蔽中断非屏蔽中断非屏蔽中断非屏蔽中断。n n 当当当当NMINMI引脚上产生引脚上产生引脚上产生引脚上产生上升沿上升沿上升沿上升沿信号,信号,信号,信号,CPUCPU必响应此中断请必响应此中断请必响应此中断请必响应此中断请 求,即求,即求,即求,即NMINMI引脚上的中断请求引脚上的中断请求引脚上的中断请求引脚上的中断请求不受不受不受不受IFIF标志的控制标志的控制标志的控制标志的控制,n n IF IF不能屏蔽不能屏蔽不能屏蔽不能屏蔽NMINMI引脚上的中断请求。引脚上的中断请求。引脚上的中断请求。引脚上的中断请求。2323保留保留中断

29、逻辑中断逻辑INTnINTn指令指令INTOINTO指令指令除法除法错误错误单步单步TF=1TF=1非屏蔽中断请求非屏蔽中断请求IRIR0 0IRIR6 6IRIR5 5IRIR4 4IRIR3 3IRIR2 2IRIR1 1IRIR7 7可编程可编程中中 断断控制器控制器(PIC)(PIC)8259A8259AINTINTn n4 41 12 2CPUCPUINTRINTRNMINMI080809090A0A0B0B0C0C0D0D0E0E0F0F系统定时器系统定时器键盘键盘保留保留(打印机打印机)软盘软盘串行通信接口串行通信接口保留保留(通信通信)彩色彩色/图形接口图形接口实方式下的实方式

30、下的中断源中断源INT3指令 302424当有多个中断源同时产生中断申请时,当有多个中断源同时产生中断申请时,CPU先响应优先权最高的中断源,先响应优先权最高的中断源,再响应优先级较低的中断源。再响应优先级较低的中断源。二、实方式下的中断优先权二、实方式下的中断优先权n n优先级 高高 低低 n n 内中断内中断内中断内中断(除零,除零,除零,除零,INT INT 指令,断点,指令,断点,指令,断点,指令,断点,INTOINTO指令指令指令指令)n n 非屏蔽中断非屏蔽中断非屏蔽中断非屏蔽中断 n n 可屏蔽中断可屏蔽中断可屏蔽中断可屏蔽中断 低低 内中断内中断(单步单步)2525三、实方式下

31、的响应中断的过程三、实方式下的响应中断的过程n n当中断源产生当中断源产生当中断源产生当中断源产生中断申请中断申请中断申请中断申请后,后,后,后,n n不论是内中断、非屏蔽中断,还是可屏蔽中断不论是内中断、非屏蔽中断,还是可屏蔽中断不论是内中断、非屏蔽中断,还是可屏蔽中断不论是内中断、非屏蔽中断,还是可屏蔽中断,n n只要满足响应条件,在只要满足响应条件,在只要满足响应条件,在只要满足响应条件,在执行完执行完执行完执行完当前指令后,当前指令后,当前指令后,当前指令后,n nCPUCPU内部硬件会自动完成下列内部硬件会自动完成下列内部硬件会自动完成下列内部硬件会自动完成下列响应中断的过程响应中断

32、的过程响应中断的过程响应中断的过程:取中断类型号取中断类型号N 当前当前PSW的内容入栈的内容入栈 清清IF、TF标志为标志为0 当前当前CS的内容入栈的内容入栈 当前当前IP的内容入栈的内容入栈 取内存单元取内存单元(0:N 4)字内容送字内容送IP 取中断子程取中断子程 取内存单元取内存单元(0:N 4+2)字内容送字内容送CS 入口地址入口地址 此时此时CS:IP指向中断程序的入口,开始执行中断程序。指向中断程序的入口,开始执行中断程序。保存现场保存现场2626当前指令执行完的含义当前指令执行完的含义 CPUCPU正在执行一条指令,正在执行一条指令,执行完执行完本条指令,响应中断;本条指

33、令,响应中断;对于带重复前缀的串指令(如对于带重复前缀的串指令(如REP MOVSBREP MOVSB),),执行一次执行一次重复和串指令即可响应中断;重复和串指令即可响应中断;对对MOVMOV和和POPPOP指令,指令,处理对象为段寄存器处理对象为段寄存器,以及以及STISTI和和IRETIRET指令执行完本条指令后,指令执行完本条指令后,再执行一条再执行一条指令才响应中断。指令才响应中断。2727内内 存存中断向量表中断向量表0:0 3FFH1000:150h3000:200h0:N40:N4+20:0000 、0200h 3000h 、MOV AX,0 ADD AX,DX MOV DI,

34、AX、MOV BX,CX、IRET、类型类型N中断子程中断子程 某中断源发申请中断,某中断源发申请中断,申请执行类型号为申请执行类型号为N的中断子程的中断子程响应中断前响应中断前 SS:SP 响应中断后响应中断后SS:SP 堆栈堆栈执行执行IRET后后(IP)(CS)(PSW)01501000(PSW)SS:SP(IP)=0200h(CS)=3000h0:3FFH0:0例例:2828从中断子程返回断点处从中断子程返回断点处,靠的是执行中,靠的是执行中断子程最后的指令断子程最后的指令IRET,从堆栈中取,从堆栈中取出断点地址给出断点地址给CS:IP,继续执行被中断,继续执行被中断的程序。故中断子

35、程最后应安排的程序。故中断子程最后应安排IRET 指令。指令。1000:150h3000:200h0:N40:N4+20:0000 、0200h 3000h 、MOV AX,0 ADD AX,DX MOV DI,AX、MOV BX,CX、IRET、响应中断前响应中断前 SS:SP 响应中断后响应中断后SS:SP 堆栈堆栈执行执行IRET后后(IP)(CS)(PSW)01501000(PSW)SS:SP(IP)=0200h(CS)=3000h2929四、实方式下如何获取中断类型号四、实方式下如何获取中断类型号n n由前面介绍知,当中断源产生由前面介绍知,当中断源产生由前面介绍知,当中断源产生由前

36、面介绍知,当中断源产生中断请求中断请求中断请求中断请求后,后,后,后,不论是内中断、非屏蔽中断,还是可屏蔽中断不论是内中断、非屏蔽中断,还是可屏蔽中断不论是内中断、非屏蔽中断,还是可屏蔽中断不论是内中断、非屏蔽中断,还是可屏蔽中断,只要满足响应条件,在执行完当前指令后,只要满足响应条件,在执行完当前指令后,只要满足响应条件,在执行完当前指令后,只要满足响应条件,在执行完当前指令后,CPU CPU内部硬件会自动完成响应中断的过程内部硬件会自动完成响应中断的过程内部硬件会自动完成响应中断的过程内部硬件会自动完成响应中断的过程,共七个步骤,而共七个步骤,而共七个步骤,而共七个步骤,而第一步就是获取中

37、断类型号。第一步就是获取中断类型号。第一步就是获取中断类型号。第一步就是获取中断类型号。3030四、实方式下如何获取中断类型号四、实方式下如何获取中断类型号不同的中断源,实方式下不同的中断源,实方式下获取中断类型号的方法不同获取中断类型号的方法不同:1)异常、软中断、非屏蔽中断的矢量号)异常、软中断、非屏蔽中断的矢量号 由由CPU分配或由分配或由INTn指令提供指令提供2)外中断外设提供)外中断外设提供3131STIIPCSPSWCPU和总线控制逻辑和总线控制逻辑(1)条件条件 IF=1 NMI=0 HOLD=0 无内部中断无内部中断INTRINTAD0D78259AINTINTAD0D7IR

38、0IR1IR7外外设设中中断断请请求求(6)0 IF0 TF(5)保保护护断断点点(9)返返回回主主程程序序4*N4*N+2IPCSPSW(2)中断请求中断请求主程序主程序(7)(4*N)IP(4*N+2)CS转入中断处理程序转入中断处理程序(2)中断请求中断请求INT=1(3)INTA=0送送8259A(4)类型码类型码N送送CPU(7)转入中断处理程序转入中断处理程序(9)返回主程序返回主程序(8)开中开中断断中断处理程序中断处理程序IRET可屏蔽中断的响应和处理过程可屏蔽中断的响应和处理过程可屏蔽中断的响应和处理过程可屏蔽中断的响应和处理过程:IVT堆栈堆栈3232五、中断处理程序五、中

39、断处理程序保护现场保护现场中断服务程序中断服务程序恢复现场恢复现场中断返回中断返回3333作业作业n nP345:2,534348.7 保护方式下的中断和异常基地址限量中断描述符表中断中断N的门的门中断中断N-1的门的门8N8(N-1)中断中断2的门的门中断中断1的门的门中断中断0的门的门10H8015 0保护方式的中断描述符表保护方式的中断描述符表保护方式下,发生中断和异常时,保护方式下,发生中断和异常时,使用中断描述符表使用中断描述符表IDT(共共256项每项项每项8字节字节的中断描述符组成)的中断描述符组成)IDT在内存中的位置由中断描述符表寄存器在内存中的位置由中断描述符表寄存器IDT

40、R给出(给出(48位)位)IDTRIDT47163535 中断门中断门IDT中每项可能含中每项可能含:陷阱门陷阱门 任务门任务门中断类型号中断类型号8用来索引用来索引IDT中一个门中一个门通过通过中断门或陷阱门中断门或陷阱门 只能使程序转移到只能使程序转移到当前任务当前任务的的中断(异常)处理程序中断(异常)处理程序通过通过任务门任务门 能使程序转移到能使程序转移到不同任务不同任务的中断(异常)的中断(异常)处理程序处理程序363615 14 12 11 8 7 0保留保留(必须为必须为0)P DPL 0 类型 未用代码段选择器代码段选择器偏移量偏移量80268中断或陷阱门中断或陷阱门6420

41、15 0 80386/80486中断或陷阱门中断或陷阱门6420偏移量偏移量(高高)P DPL 0 类型 000 保留代码段选择器代码段选择器偏移量偏移量150任务门任务门保留P DPL 0 类型保留TSS段选择器段选择器保留6420中断描述符格式P:存在位存在位DPL:描述符特权级描述符特权级类型:类型:0101任务门任务门0110/1110中断门中断门0111/1111陷阱门陷阱门DPL字段仅在字段仅在INT n和和INTO指令时被检指令时被检验,且要求验,且要求CPL高于或等于高于或等于DPL类型类型0110/0111类型类型1110/11113737入口点入口点中断描述符表Select

42、orAttributesOffset全局或局部描述符表线性地址空间Base Limit Attributes通过中断门或陷阱门的转移通过中断门或陷阱门的转移:IDT描述符为中断门或陷阱门则描述符为中断门或陷阱门则 中断程序与当前程序为中断程序与当前程序为同一任务同一任务,中断程序地址中断程序地址由中断门或陷阱门提供由中断门或陷阱门提供8.7.1 8.7.1 通过中断门及陷阱门的转移通过中断门及陷阱门的转移3838通过中断门及陷阱门的转移通过中断门及陷阱门的转移 (1)门中选择子指向)门中选择子指向一致代码段一致代码段 代码段描述符中代码段描述符中DPL级别级别=CPL级别级别同一特权级的转移同

43、一特权级的转移:(2)门中选择子指向)门中选择子指向非一致代码段非一致代码段 代码段描述符中代码段描述符中DPL=CPL向内层的转移向内层的转移:门中选择子指向门中选择子指向非一致代码段非一致代码段 代码段描述符中代码段描述符中DPL级别级别CPL级别级别 (堆栈也切换到内层栈堆栈也切换到内层栈)类似于通过调用门类似于通过调用门执行执行CALL指令指令3939通过中断门或陷阱门向内层转移时通过中断门或陷阱门向内层转移时 堆栈的切换堆栈的切换:向内中断向内中断向外返回向外返回堆栈堆栈向下向下增长增长内层栈内层栈外层外层栈栈IRET前的前的ESP指针指针中断后的中断后的ESP指针指针中断前及中断前

44、及IRET后的后的ESP指针指针SS0LIMITLIMITSS0Outer SSOuter ESPOuter EFLAGSOuter CSOuter EIPError Code当前当前TSS提供初值提供初值0-TF0-NT0-IF(中断门中断门)IF保持保持(陷阱门陷阱门)4040CopiedOuter SSOuter ESPP1P2P3P4Outer CSOuter EIPP1P2P3P4调用后,返回前的调用后,返回前的ESP指针指针调用前的调用前的ESP指指针针0返回后的返回后的ESP指指针针Limit0内层栈内层栈外层栈外层栈栈栈向向下下增增长长Limit向内调用向内调用向外返回向外返回

45、比较比较比较比较:CALL指令通过调用门向内层程序转移时,栈切换:指令通过调用门向内层程序转移时,栈切换:CALL指令通过调用门向内层程序转移时,栈切换指令通过调用门向内层程序转移时,栈切换-进行参数拷贝进行参数拷贝 通过中断门或陷阱门向内层转移时,通过中断门或陷阱门向内层转移时,栈切换栈切换-不进行参数拷贝不进行参数拷贝41418.7.2 8.7.2 中断中断(或异常或异常)的返回的返回(1)执行执行IRET前前,中断(异常)处理程序将,中断(异常)处理程序将 错误码弹出错误码弹出(2)执行执行IRET时时,弹出外层,弹出外层EIP、CS值值 恢复断点恢复断点(3)弹出外层弹出外层EFLAG

46、S值值(4)对弹出的对弹出的CS选择子的选择子的RPL字段进行检验字段进行检验 RPL=CPL不改变特权级不改变特权级 RPLCPL改变特权级改变特权级(5)若若RPLNT(5)中断)中断返回返回时,时,IRET从从当前当前TSS的的LINK字段得到字段得到返回到的任务的返回到的任务的TSS选择子选择子43438.7.4 8.7.4 小结小结保护方式下中断(异常)发生时:保护方式下中断(异常)发生时:使用使用IDT 中断门中断门IDT中每项可能含中每项可能含:陷阱门陷阱门 任务门任务门中断类型号中断类型号8用来索引用来索引IDT中一个门中一个门通过通过中断门或陷阱门中断门或陷阱门 只能使程序转

47、移到只能使程序转移到当前任务当前任务的中断(异的中断(异常)处理程序常)处理程序通过通过任务门任务门 能使程序转移到能使程序转移到不同任务不同任务的中断(异常)处理程的中断(异常)处理程序序 4444保护方式下中断(异常)发生时:保护方式下中断(异常)发生时:通过通过中断门中断门或或陷阱门陷阱门 当前任务内转移当前任务内转移 速度较速度较快快通过通过 任务门任务门 任务切换任务切换 速度较速度较慢慢45458.8 中断优先级管理器中断优先级管理器8259A PIC8259A是一种是一种可编程的中断优先级管理器芯片可编程的中断优先级管理器芯片每每一片一片8259A可管理可管理8级级优先级中断优先

48、级中断最多可用最多可用9片片组成组成两级两级中断机构,管理中断机构,管理64级级中断中断46468.8.1 8259A的内部结构及引脚信号的内部结构及引脚信号1232827262524232221201918171615 CS WR RD D7 D6 D5 D4 D3 D2 D1 D0CAS0CAS1GNDVccA0INTAIR7IR6IR5IR4IR3IR2IR1IR0INTSP/ENCAS28259A引脚图7891011125613144数据线数据线中断请中断请求信号求信号中断请求中断请求-CPU中断响应中断响应CPU P=0 RR RIS=11-下一条下一条输入指令输入指令将将ISR-C

49、PUA0=0(偶址)特征位特征位66668.8.3 8259A在IBM-PC XT PC AT及386微机系统中的应用 1、IBM-PC XT 微机系统的外中断微机系统的外中断8259中断中断控制器控制器8088/8086CPU IRQ0IRQ1IRQ2IRQ3IRQ4IRQ5IRQ6IRQ7定时器定时器键盘键盘保留保留串行口串行口2串行口串行口1硬盘硬盘软盘软盘打印机打印机INTINTRIMB-PC XT 机外中断请求的设置机外中断请求的设置:08H09H0AH0BH0CH0DH0EH0FH对应的中断矢量号对应的中断矢量号6767一片一片8259A8级中断级中断中断类型号、矢量地址中断类型号

50、、矢量地址IR2可供用户使用可供用户使用I/0地址:地址:20H,21HXT机机BIOS对对8259A初始化规定初始化规定初始化程序初始化程序 1、IBM-PC XT 微机系统的外中断微机系统的外中断68688259A(从片从片)中断中断控制器控制器8259A(主片主片)中断中断控制器控制器IRQ8IRQ9IRQ10IRQ11IRQ12IRQ13IRQ14IRQ16IRQ0IRQ1IRQ2IRQ3IRQ4IRQ5IRQ6IRQ7实时钟实时钟INTOAH保留保留保留保留保留保留80287硬盘硬盘保留保留定时器定时器键盘键盘串行口串行口2串行口串行口1并行口并行口2软盘软盘并行口并行口1CAS0

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

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁