第八章中断和异常课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第八章中断和异常课件.ppt》由用户(ziliao2023)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第八 中断 异常 课件
- 资源描述:
-
1、电源掉电,硬件故障,传输错,存贮错,运算错及操作面板要求服务等),中断服务程序中断服务程序1中断服务程序中断服务程序 2中断事件中断事件1CPU执行流程执行流程中断事件中断事件 2CPU执行流程执行流程中断服务程序中断服务程序1 1中断服务程序中断服务程序2非预料事件非预料事件2非预料事件非预料事件1非预料事件是指事件发生的时间无法预知,非预料事件是指事件发生的时间无法预知,即中断源何时产生中断不确定,是随机的。即中断源何时产生中断不确定,是随机的。但事件的性质及处理方法则是已知的,但事件的性质及处理方法则是已知的,确定的,确定的,即中断服务程序是事先编写好的即中断服务程序是事先编写好的,只是
2、何时执行未知。只是何时执行未知。中断源产生中断的随机性,中断源产生中断的随机性,使中断服务程序的执行也具有随机性,使中断服务程序的执行也具有随机性,即何时执行中断服务程序不是在程序中安排好的。即何时执行中断服务程序不是在程序中安排好的。1000:150H 、MOV AX,0ADD AX,DXMOV DI,AX、PUSH AX 、IRETCPU在执行此指令时,在执行此指令时,某中断源发申请中断某中断源发申请中断;CPU在执行完该指令后,在执行完该指令后,转去执行中断子程转去执行中断子程地址地址1000:150H为断点为断点断点概念断点概念:五、硬件中断和软件中断五、硬件中断和软件中断 1、异常分
3、类 产生异常后,系统根据引起异常的程序是否可被恢复这一原则,进一步又把异常分为故障故障(fault)、陷阱陷阱(trap)和中止中止(abort)3类异常。故障故障异常是引起故障的程序可被恢复执行的异常,它也是在引起故障的指令执行之前就报告给系统的一种异常,故障被检出时,保护断点(指向引起故障的指令)故障处理完毕,返回到引起故障的指令,使该指令得以正确执行。陷阱陷阱异常是在指令执行期间被检测到的,并在引起异常的指令执行之后向系统报告的一种异常.陷阱产生后,保护断点(指向引起陷阱的指令的下一条应该执行的指令地址),程序转向异常处理。中止中止异常是微处理器面临严重错误时产生的异常。2、异常错误码选
4、择器索引保留选择器索引15 域 值 描述D0:EXT 0 中断的程序引起异常 1 外部事件引起异常D1:IDT 0 索引域的意义取决于 TI域 1 选择器属于门描述符D2:TI 0 索引域指向GDT 1 索引域指向LDTD3-D15 为索引域,与TI组成一 个14位的指针 3 2 1 08028680386/80486 3、处理器定义的异常 所谓处理器定义的异常是80X86处理器中保留自用的异常,共用16个.1、异常0 异常0定义为除法出错异常,是一种故障型异常 2、异常1 异常1定义为排错异常或调试异常,有故障类或陷阱类,其中单步为陷阱型异常 3、异常3 异常3为断点中断,是一个采用单字节指
5、令INT的软件中断,属陷阱型异常 4、异常4 异常4定义为溢出异常陷阱,属陷阱型异常 5、异常5 异常5定义为边界检查故障,属故障型异常 6、异常6异常6定义为无效操作码故障,属故障型异常7、异常7异常7定义为协处理器无效故障,属故障型异常8、异常8异常8定义为双重故障,属中止型异常9、异常9异常9定义为协处理器段越界异常,属中止型异常10、异常10异常10定义为无效TSS故障,属故障型异常11、异常11异常11定义为段不存在异常,属故障型异常12、异常12异常12定义为栈段故障,属故障型异常13、异常13异常13定义为通用保护故障,属故障型异常14、异常14异常14定义为页故障,属故障型异常
6、15、异常16异常16定义为协处理器出错故障,属故障型异常注意:由INT N 定义的软中断均为陷阱型异常未定义31 3 2 1 0U/S R/W P域 值 描述P 0 失效由不存在页引起 1 失效由页级别保护冲突引起R/W 0 失效由读引起 1 失效由写引起U/S 0 失效发生在管理方式 1 失效发生在用户方式 中断和排错异常在某些条件下可被忽略或屏蔽 引起中断和排错异常可被忽略或屏蔽的条件如下:1、EFLAGS中的IF=0,屏蔽外部可屏蔽中断.2、IF=0时,执行STI指令,则在STI指令及下面一条指令执行期间,屏蔽外部可屏蔽中断.3、EFLAGS中的RF=1,屏蔽排错故障.(RF为调整恢复
7、标志:RF=0,调试故障被接受,RF=1,调试故障被忽略)4、系统正处理一个非屏蔽外部中断,则屏蔽任何新的非屏蔽中断。5、执行以SS为目的寄存器的MOV及POP指令时,将在该指令及下面一条指令执行 期间屏蔽各种中断及排错异常.6、在指令前缀LOCK及被锁定的指令之间不允许中断。中断中断/异常类型异常类型优先级优先级排错故障非排错故障陷阱指令INT n、INTONMI中断INTR中断 最高最低中断/异常的优先级排错陷阱 按中断源的不同,中断分为按中断源的不同,中断分为内部中断内部中断和和外部中断外部中断。2 2、外部中断(硬中断)、外部中断(硬中断)8088GNDA14A13A12A11A10A
8、9A8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGND最大组态(最小组态)最大组态(最小组态)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)TESTREADYRESET保留保留中断逻辑中断逻辑INTnINTn指令指令INTOINTO指令指令除法除法错误错误单步单步TF=1TF=1非屏蔽中断请求非屏蔽中断请求IRIR0 0IRIR6 6IRIR5 5IRIR4 4IRIR3 3I
9、RIR2 2IRIR1 1IRIR7 7可编程可编程中中 断断控制器控制器(PIC)(PIC)8259A8259AINTINTn n4 41 12 2CPUCPUINTRINTRNMINMI080809090A0A0B0B0C0C0D0D0E0E0F0F系统定时器系统定时器键盘键盘保留保留(打印机打印机)软盘软盘串行通信接口串行通信接口保留保留(通信通信)彩色彩色/图形接口图形接口实方式下的实方式下的中断源中断源INT指令 30当有多个中断源同时产生中断申请时,当有多个中断源同时产生中断申请时,CPU先响应优先权最高的中断源,先响应优先权最高的中断源,再响应优先级较低的中断源。再响应优先级较低
10、的中断源。取中断类型号取中断类型号N 当前当前PSW的内容入栈的内容入栈 清清IF、TF标志为标志为0 当前当前CS的内容入栈的内容入栈 当前当前IP的内容入栈的内容入栈 取内存单元取内存单元(0:N 4)字字内容送内容送IP 取中断子程取中断子程 取内存单元取内存单元(0:N 4+2)字内容送字内容送CS 入口地址入口地址 此时此时CS:IP指向中断程序的入口,开始执行中断程序。指向中断程序的入口,开始执行中断程序。保存现场保存现场当前指令执行完的含义当前指令执行完的含义 CPUCPU正在执行一条指令,执行完本条指令,响应中断;正在执行一条指令,执行完本条指令,响应中断;对于带重复前缀的串指
11、令(如对于带重复前缀的串指令(如REP MOVSBREP MOVSB),执行一次),执行一次重复和串指令即可响应中断;重复和串指令即可响应中断;对对MOVMOV和和POPPOP指令,处理对象为段寄存器,指令,处理对象为段寄存器,以及以及STISTI和和IRETIRET指令执行完本条指令后,指令执行完本条指令后,再执行一条指令才响应中断。再执行一条指令才响应中断。内内 存存中断向量表中断向量表0:0 3FFH1000:150h3000:200h0:N40:N4+20:0000 、0200h 3000h 、MOV AX,0 ADD AX,DX MOV DI,AX、MOV BX,CX、IRET、类型
12、类型N中断子程中断子程 某中断源发申请中断,某中断源发申请中断,申请执行类型号为申请执行类型号为N的中断子程的中断子程响应中断前响应中断前 SS:SP 响应中断后响应中断后SS:SP 堆栈堆栈执行执行IRET后后(IP)(CS)(PSW)01501000(PSW)SS:SP(IP)=0200h(CS)=3000h0:3FFH0:0从中断子程返回断点处,靠的是执行中从中断子程返回断点处,靠的是执行中断子程最后的指令断子程最后的指令IRET,从堆栈中取,从堆栈中取出断点地址给出断点地址给CS:IP,继续执行被中断,继续执行被中断的程序。故中断子程最后应安排的程序。故中断子程最后应安排IRET 指令
13、。指令。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)=3000h不同的中断源,实方式下不同的中断源,实方式下获取中断类型号的方法不同获取中断类型号的方法不同。STIIPCSPSWCPU和总线控制逻辑(1)条件 IF=1 NMI=0 HOLD=0 无内部中断INTRINTAD
14、0D78259AINTINTAD0D7IR0IR1IR7外设中断请求(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)开中断中断处理程序INET可屏蔽中断的响应和处理过程基地址限量中断描述符表中断N的门中断N-1的门8N8(N-1)中断2的门中断1的门中断0的门10H8015 0保护方式的中断描述符表保护方式下,发生中断和异常时,使用中断描述符表IDT(共256项每项由8
15、字的中断描述符组成)IDT在内存中的位置由中断描述符表寄存器IDTR给出(48位)IDTRIDT310IDT:为中断门,陷阱门,任务门之一15 14 12 11 7 0保留(必须为0)P DPL 0 类型 未用代码段选择器偏移量80286中断或陷阱门642015 0 80386/80486中断或陷阱门6420偏移量(高)P DPL 0 类型 000 保留代码段选择器偏移量150任务门保留P DPL 0 类型保留TSS段选择器保留6420中断描述符格式P:存在位DPL:描述符特权级类型:0101任务门0110/0001中断门0111/1111陷阱门DPL字段仅在INT N和INTO指令时被检验,
16、且要求CPL大于或等于DPL入口点中断描述符表SelectorAttributesOffset全局或局部描述符表线性地址空间Base Limit Attributes通过中断门或陷阱门的转移:IDT为中断门或陷阱门则中断程序与当前程序为同一任务,中断程序地址由中断门或陷阱门提供,如下图通过中断门或陷阱门向内层转移:向内中断向外返回堆栈向下增长内层栈外层栈IRET前的ESP指针中断后的ESP指针中断前及IRET后的ESP指针SS0LIMITLIMITSS0Outer SSOuter Esp EFLAGSOuter CSOuter EIPError Code特点:特点:l1片8259能管理8级中断
17、,9片8259可构成64级主从式中断。l可通过编程,使8259工作在多种不同的方式。l采用CMOS工艺,只需单一的5V电源。IR0IR1IR2IR3IR4IR5IR6IR7内内部部总总线线中断中断服务服务寄存器寄存器(ISR)优先权优先权判别器判别器(PR)中断中断请求请求寄存器寄存器(IRR)中断屏蔽寄存器(中断屏蔽寄存器(IMR)控制逻辑控制逻辑 INTA INT 数据数据总线总线缓冲器缓冲器读读/写写控制控制逻辑逻辑级连级连/缓冲缓冲比较器比较器RDWRA0CSCAS0CAS1CAS2SP/END7D01.8259A的内部结构的内部结构中中断请求寄存器断请求寄存器(8(8位位)IRR寄存
18、从引脚IR0IR7输入的中断请求信号。当IRi 有效时,IRRi位置“1”。存放屏蔽中断的信息。IMRi位与IRRi位一一对应,如果IMRi位为1,锁存在IRRi位的中断请求被屏蔽。优优先权判别器先权判别器(PR)当IR7IR0端有多个中断请求同时发生时,由PR判定哪个中断请求具有最高优先权,并在INTA脉冲期间将它置入中断服务寄存器ISR的相应位。中断中断服务寄存器服务寄存器(8位位)ISR记录CPU正在处理中的中断请求。ISRi 位与IRi中断源一一对应,当任一级IRi中断请求被响应,CPU正在执行它的中断服务程序时,ISRi 位置“1”,它一直保持到该级中断处理过程结束为止。由于可能产生
展开阅读全文