计算机专接本之微机原理-7.中断_第1页
计算机专接本之微机原理-7.中断_第2页
计算机专接本之微机原理-7.中断_第3页
计算机专接本之微机原理-7.中断_第4页
计算机专接本之微机原理-7.中断_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

1、1第第7章中断章中断27.1中断中断的的概念概念中断就是指中断就是指CPU响应中断请求,暂停现行的主程序,响应中断请求,暂停现行的主程序,转去执行中断服务子程序,完成中断事件处理后,返回断转去执行中断服务子程序,完成中断事件处理后,返回断点继续执行主程序的过程。点继续执行主程序的过程。37.1.1 8086的中断源的中断源 中断源中断源即引起即引起CPU中断的外部事件或内部原因中断的外部事件或内部原因 硬件中断硬件中断(外部中断)、(外部中断)、软件中断软件中断(内部中断)(内部中断) 微型计算机应用中断技术后的功能特点:微型计算机应用中断技术后的功能特点:可实现同步操作可实现同步操作、可进行

2、实时处理可进行实时处理、能及时处理各种故障能及时处理各种故障 中断源中断源内部指令中断内部指令中断 (INT n)由由CPU的某些运算错误引起的某些运算错误引起为调试程序(为调试程序(DEBUG)设置的中断)设置的中断外部中断外部中断软件中断软件中断非屏蔽中断(非屏蔽中断(NMI)可屏蔽中断(可屏蔽中断(INTR)除法错中断(除法错中断(INT 0)溢出中断(溢出中断(INT 4)单步中断(单步中断(INT 1)断点中断(断点中断(INT 3)41. 外部中断外部中断 外部中断是由于外部中断是由于8088外部提出中断请求引起外部提出中断请求引起的程序中断的程序中断。 利用外部中断,微机系统可以

3、实时响应外部设备的数据传利用外部中断,微机系统可以实时响应外部设备的数据传送请求,能够及时处理外部意外或紧急事件送请求,能够及时处理外部意外或紧急事件 外部中断的原因是处理器外部随机产生的,所以是真正的外部中断的原因是处理器外部随机产生的,所以是真正的中断中断(Interrupt) 内部中断的原因是处理器执行程序出现异常,所以经常被内部中断的原因是处理器执行程序出现异常,所以经常被称为称为异常异常(Exception) 8086/8088CPU为外部设备提供了两条硬件中断信号线,为外部设备提供了两条硬件中断信号线,即即NMI和和INTR中断请求信号。中断请求信号。5 非屏蔽中断非屏蔽中断 通过

4、非屏蔽中断请求信号向微处理器提出的中断请求,微通过非屏蔽中断请求信号向微处理器提出的中断请求,微处理器无法禁止,将在当前指令执行结束予以响应,这个处理器无法禁止,将在当前指令执行结束予以响应,这个中断被称为非屏蔽中断中断被称为非屏蔽中断 8088的非屏蔽中断的向量号为的非屏蔽中断的向量号为2,非屏蔽中断请求信号为,非屏蔽中断请求信号为NMI 非屏蔽中断主要用于处理系统的意外或故障。例如:非屏蔽中断主要用于处理系统的意外或故障。例如: 电源调电前的数据保护电源调电前的数据保护 存储器读写错误的处理存储器读写错误的处理6 可屏蔽中断可屏蔽中断 外部通过可屏蔽中断请求信号向微处理器提出的中断,微外部

5、通过可屏蔽中断请求信号向微处理器提出的中断,微处理器在允许可屏蔽中断的条件下,在当前指令执行结束处理器在允许可屏蔽中断的条件下,在当前指令执行结束予以响应,同时输出可屏蔽中断响应信号,这个中断就是予以响应,同时输出可屏蔽中断响应信号,这个中断就是可屏蔽中断可屏蔽中断 8088的可屏蔽中断请求和响应信号分别是的可屏蔽中断请求和响应信号分别是INTR和和INTA*;由由IF标志控制可屏蔽中断是否允许响应;向量号来自外部标志控制可屏蔽中断是否允许响应;向量号来自外部中断控制器中断控制器 8088通常需要配合中断控制器通常需要配合中断控制器8259A共同处理可屏蔽中断共同处理可屏蔽中断 可屏蔽中断主要

6、用于主机与外设交换数据可屏蔽中断主要用于主机与外设交换数据IF控制可屏蔽中断的响应控制可屏蔽中断的响应7中断标志中断标志IFIF的状态的状态 IF0:可屏蔽中断不会被响应:可屏蔽中断不会被响应 关中断、禁止中断、中断屏蔽关中断、禁止中断、中断屏蔽 系统复位,使系统复位,使IF0 任何一个中断被响应,使任何一个中断被响应,使IF0 执行指令执行指令CLI,使,使IF0 IF1:可屏蔽中断会被响应:可屏蔽中断会被响应 开中断、允许中断、中断开放开中断、允许中断、中断开放 执行指令执行指令STI,使,使IF1 执行指令执行指令IRET恢复原恢复原IF状态状态82. 2. 内部中断内部中断 在在808

7、6/8088系统中,通过执行中断指令或由系统中,通过执行中断指令或由CPU本身启本身启动的中断称为动的中断称为内部中断内部中断(也称软件中断)。除单步中断外,(也称软件中断)。除单步中断外,内部中断无法用软件禁止,即不受中断允许标志内部中断无法用软件禁止,即不受中断允许标志IF的影响。的影响。 内部中断是由于内部中断是由于8088内部执行程序出现异常引起内部执行程序出现异常引起的程序中的程序中断断 内部中断的中断向量号已定(1) 0型中断型中断除法出错中断除法出错中断(2) 1型中断型中断单步中断单步中断(3) 3型中断型中断断点中断断点中断(4) 4型中断型中断溢出中断溢出中断(5) INT

8、 n指令中断指令中断9(1)指令中断指令中断 在执行中断调用指令在执行中断调用指令INT n时产生的一个向量号为时产生的一个向量号为n(0 255)的内部中断,称为指令中断)的内部中断,称为指令中断例如:例如:DOS功能调用功能调用 INT 21H 测试存储器容量测试存储器容量 INT 12H10(2) 除法错中断除法错中断 在执行除法指令时,若除数为在执行除法指令时,若除数为0或商超过了寄存器所能表或商超过了寄存器所能表达的范围,则产生一个向量号为达的范围,则产生一个向量号为0的内部中断,称为除法的内部中断,称为除法错中断错中断mov bl,0idiv bl;除数;除数BL0,产生除法错中断

9、,产生除法错中断mov ax,200hmov bl,1div bl;商;商200H,不能用,不能用AL表达表达;产生除法错中断;产生除法错中断例如:例如:11(3)溢出中断溢出中断 在执行溢出中断指令在执行溢出中断指令INTO时,若溢出标志时,若溢出标志OF为为1,则产,则产生一个向量号为生一个向量号为4的内部中断,被称为溢出中断的内部中断,被称为溢出中断例如:例如:mov al,20hadd al, 70h;20H70H90H,溢出:,溢出:OF1into;因为;因为OF1,所以产生溢出中断,所以产生溢出中断12(4)单步中断单步中断 若单步中断若单步中断TF为为1,则在每条指令执行结束后产

10、生一个向,则在每条指令执行结束后产生一个向量号为量号为1的内部中断,称为单步中断的内部中断,称为单步中断例如:例如:DEBUG.EXE调试程序的单步命令调试程序的单步命令T就利用单步就利用单步中断实现对程序的单步调试中断实现对程序的单步调试138086/8088的中断类型小结非屏蔽中断源非屏蔽中断源中断逻辑中断逻辑INTO指令指令单步单步中断中断除法除法错误错误INT N指令指令CPUINTRNMI可屏蔽中断源可屏蔽中断源8259A中断中断控制器控制器IR0IR1IR2IR3IR4IR5IR6IR7外外设设中中断断源源 INTA147.1.2 8086的的中断系统中断系统 8088能够处理能够

11、处理256个中断个中断,分内部和外部两类。用中断向,分内部和外部两类。用中断向量号量号0255区别区别 可屏蔽中断还需要借助专用中断控制器可屏蔽中断还需要借助专用中断控制器Intel 8259A实现优实现优先权管理先权管理 中断类型:中断类型:内部中断内部中断 除法错中断除法错中断 指令中断指令中断 溢出中断溢出中断 单步中断单步中断外部中断外部中断 非屏蔽中断非屏蔽中断 可屏蔽中断可屏蔽中断15 在在8086系统中,允许引入系统中,允许引入256种类型中断源(类型种类型中断源(类型码为码为0255),相应有),相应有256个中断服务程序个中断服务程序入口地入口地址。存放中断地址的一段内存空间

12、称址。存放中断地址的一段内存空间称中断向量表中断向量表。 中断向量即中断服务程序的入口地址中断向量即中断服务程序的入口地址。 中断向量表中存放着中断服务程序的入口地址。中断向量表中存放着中断服务程序的入口地址。CPU 响应中断后根据响应中断后根据中断类型号中断类型号在中断向量表中在中断向量表中查到对应的中断服务程序的入口地址,然后转到查到对应的中断服务程序的入口地址,然后转到中断服务程序。中断服务程序。 在内存中专门开辟一个区域,存放中断向量表。在内存中专门开辟一个区域,存放中断向量表。16中断向量表中断向量表示意图示意图low17 中断向量中断向量:中断服务子程序的入口地址,每个中断服务子:

13、中断服务子程序的入口地址,每个中断服务子程序对应一个中断类型号程序对应一个中断类型号 中断向量表中断向量表:存放中断向量的区域(:存放中断向量的区域(00000H003FFH) 逻辑地址含有段地址逻辑地址含有段地址CS和偏移地址和偏移地址IP(32位)位) 每个中断向量的低字是偏移地址、高字是段地址,需占用每个中断向量的低字是偏移地址、高字是段地址,需占用4个字节个字节 8088微处理器从物理地址微处理器从物理地址000H开始,依次安排各个中断开始,依次安排各个中断向量,向量号也从向量,向量号也从0开始开始 256个中断占用个中断占用1KB区域,就形成区域,就形成中断向量表中断向量表 向量号为

14、向量号为N的中断向量的的中断向量的物理地址物理地址N418 对于不同的微机系统,对于不同的微机系统,CPU中断处理的具体过程不尽相中断处理的具体过程不尽相同,但是一个完整的中断基本过程应包括:同,但是一个完整的中断基本过程应包括:中断请求中断请求、中中断判优断判优、中断响应中断响应、中断处理中断处理及及中断返回中断返回等五个基本过程。等五个基本过程。中中断断请请求求中中断断判判优优中中断断响响应应中中断断处处理理中中断断返返回回197.2.1 中断请求中断请求 外部中断是由于外部中断是由于8088外部提出中断请求外部提出中断请求引起的程序中断引起的程序中断(1)非屏蔽中断)非屏蔽中断 通过非屏

15、蔽中断请求信号向微处理器提出的中断请求,微处理器通过非屏蔽中断请求信号向微处理器提出的中断请求,微处理器无法禁止,将在当前指令执行结束予以响应无法禁止,将在当前指令执行结束予以响应(2)可屏蔽中断)可屏蔽中断 外部通过可屏蔽中断请求信号向微处理器提出的中断,微处理器外部通过可屏蔽中断请求信号向微处理器提出的中断,微处理器在允许可屏蔽中断的条件下,在当前指令执行结束予以响应,同在允许可屏蔽中断的条件下,在当前指令执行结束予以响应,同时输出可屏蔽中断响应信号时输出可屏蔽中断响应信号207.2.2 中断判优中断判优为什么需要中断判优?发生更紧急的事情!为什么需要中断判优?发生更紧急的事情! 当多个中

16、断源同时发生中断请求时当多个中断源同时发生中断请求时CPU先响应优先级高的先响应优先级高的中断。中断。 当当CPU 正在运行中断服务程序时又有高优先级的中断请正在运行中断服务程序时又有高优先级的中断请求进入,求进入,CPU 会暂时挂起正在运行的中断服务程序去执会暂时挂起正在运行的中断服务程序去执行高级的中断服务程序。实现中断嵌套。行高级的中断服务程序。实现中断嵌套。21 8086/8088系统中,中断优先权排队次序从高到低为:系统中,中断优先权排队次序从高到低为: 除法出错、除法出错、INTn、INTO、NMI、INTR、单步中断。、单步中断。 除单步之外的内部除单步之外的内部中断中断优先权最

17、高,其次是非屏蔽中断,优先权最高,其次是非屏蔽中断,再次是可屏蔽中断,而单步最低。再次是可屏蔽中断,而单步最低。22 中断优先权中断优先权管理管理(1) 软件查询方式软件查询方式 软件查询优先方式是最简单的中断优先处理软件查询优先方式是最简单的中断优先处理方式。图方式。图7.5显示了采用软件查询方式的接口电路。显示了采用软件查询方式的接口电路。(2)硬件优先权排队电路)硬件优先权排队电路 硬件优先权排队方式常用的有两种:硬件优先权排队方式常用的有两种: 专用硬件方式专用硬件方式可编程的中断控制器。采用可可编程的中断控制器。采用可编程中断控制器,是当前微型计算机系统中解决中编程中断控制器,是当前

18、微型计算机系统中解决中断优先权管理的常用办法。详细断优先权管理的常用办法。详细的的将在将在后面后面介绍。介绍。 简单硬件方式简单硬件方式链式优先权排队电路。链式优先权排队电路。23保留现场保留现场A申请服务申请服务?B申请服务申请服务?C申请服务申请服务?恢复现场恢复现场外设外设A中断服务程序中断服务程序外设外设B中断服务程序中断服务程序外设外设C中断服务程序中断服务程序YYYNNN软件查询方式流程图软件查询方式流程图24 对于内部中断和非屏蔽中断来说对于内部中断和非屏蔽中断来说CPUCPU应立即响应。应立即响应。n对于可屏蔽中断来说,对于可屏蔽中断来说,CPUCPU在每条指令的最后一个在每条

19、指令的最后一个T T状态状态检测检测INTRINTR引脚,当有中断请求并开中断(引脚,当有中断请求并开中断(IF=1IF=1)的情况下)的情况下向外设发出中断响应信号向外设发出中断响应信号INTAINTA* *。n对于可屏蔽中断,对于可屏蔽中断,CPUCPU可以由软件设置,使之不能被响应,可以由软件设置,使之不能被响应,称为中断屏蔽称为中断屏蔽 可屏蔽中断的响应:可屏蔽中断的响应: CPU响应中断后响应中断后(后具体讲)(后具体讲) 当CPU 响应中断后首先要保护断点,然后转去执行中断服务程序,中断服务程序执行结束返回断点继续执行被中断的程序。 251.如何响应各种中断(重要考点)如何响应各种

20、中断(重要考点)v 8086/8088中的各种中断的响应和处理过程是不相同的。中的各种中断的响应和处理过程是不相同的。主要区别在于如何获取相应的中断类型码。主要区别在于如何获取相应的中断类型码。v 下面分别介绍下面分别介绍26(1)内部中断的响应内部中断的响应对于专用中断,中断类型码是自动形成的。对于专用中断,中断类型码是自动形成的。几种类型码为:类型几种类型码为:类型0、1、3、4对于对于INT n指令,其类型码为指令中给定的指令,其类型码为指令中给定的n。如何获取相应的中断类型码如何获取相应的中断类型码?不从数据总线读取中断类型码不从数据总线读取中断类型码27(2)非非屏蔽中断的响应屏蔽中

21、断的响应 对于不可屏蔽中断和对于不可屏蔽中断和IF无关,也不用判断中断源,无关,也不用判断中断源,CPU采采样到非屏蔽中断请求时,样到非屏蔽中断请求时,自动提供中断类型号自动提供中断类型号2,然后根,然后根据中断类型号,查找中断向量表指针,其后的处理与内部据中断类型号,查找中断向量表指针,其后的处理与内部中断一样。在中断处理过程过程中仍能响应不可屏蔽中断。中断一样。在中断处理过程过程中仍能响应不可屏蔽中断。 对于软件中断由程序设定,能被不可屏蔽中断和可屏蔽中对于软件中断由程序设定,能被不可屏蔽中断和可屏蔽中断所中断断所中断28(3)可屏蔽中断的响应 CPU响应可屏蔽中断的响应可屏蔽中断的三个条

22、件三个条件:(1) 外设有中断请求外设有中断请求(2) 本中断位未被屏蔽(取决于本中断位未被屏蔽(取决于8259)(3) 中断允许中断允许IF 若可屏蔽中断被响应需要若可屏蔽中断被响应需要中断响应周期中断响应周期 关于关于INTR的中断类型号:的中断类型号:(1)可由硬件电路提供)可由硬件电路提供(2)如果有)如果有8259,则由,则由8259提供提供中断响应周期:中断响应周期:从从CPU中止现行程序中止现行程序转入到中断服务程序转入到中断服务程序这一过程这一过程 ,用两个总线用两个总线周期。周期。 29可屏蔽可屏蔽中断中断的的响应响应周期周期时序时序 第一个响应周期:使AD15-AD0、AL

23、E/S7、A19/S6-A16/S3悬空。第二个响应周期:外设向数据总线上输送一个字节的中断类型号。30(5) 根据前面得到的中断类型码,到内存根据前面得到的中断类型码,到内存0000段的中断向段的中断向量表中找到中断向量,再根据中断向量转入相应的中量表中找到中断向量,再根据中断向量转入相应的中断处理子程序。断处理子程序。CPU在响应在响应INTR中断、并进入中断子程序的过程中断、并进入中断子程序的过程(1) 从数据总线上读取中断类型码,将其存入内部暂存器。从数据总线上读取中断类型码,将其存入内部暂存器。(2) 将标志寄存器的值推入堆栈。将标志寄存器的值推入堆栈。(3) 把标志寄存器的中断允许

24、标志把标志寄存器的中断允许标志IF和单步标志和单步标志TF清零。清零。(4) 将断点保护到堆栈中。将断点保护到堆栈中。三个写周期三个写周期31如果把如果把CPU中断响应周期的动作和中断响应过程结合起来,当一个可中断响应周期的动作和中断响应过程结合起来,当一个可屏蔽中断被响应时,屏蔽中断被响应时,CPU实际执行了实际执行了7个总线周期。个总线周期。(1) 执行第一个执行第一个INTA周期周期(2) 执行第二个执行第二个INTA周期周期(3) 执行一个总线写周期执行一个总线写周期(4) 执行一个总线写周期执行一个总线写周期(5) 执行一个总线写周期执行一个总线写周期(6) 执行一个总线读周期执行一

25、个总线读周期,送,送IP(7) 执行一个总线执行一个总线读读周期,从中断向量表中取出中断服务程序入周期,从中断向量表中取出中断服务程序入口地址的段值送口地址的段值送CS。对于非屏蔽与软中断跳过第对于非屏蔽与软中断跳过第(1)、(2)步,从第步,从第(3)步开始执行到第步开始执行到第(7)步。步。CPU实际执行了7个总线周期327.2.4 中断处理中断处理中断处理子程序的结构模式中断处理子程序的结构模式: :(1)(1)保护中断现场保护中断现场(压栈,保护各寄存器的值)(压栈,保护各寄存器的值)(2)(2)设置设置IFIF位,位,开中断开中断, ,允许级别更高的中断进入允许级别更高的中断进入(3

26、)(3)中断处理子程序的主要部分中断处理子程序的主要部分(4)(4)恢复现场恢复现场(弹栈使得各寄存器恢复进入中断时的值)(弹栈使得各寄存器恢复进入中断时的值)(5)(5)中断返回中断返回指令指令( (使断点和使断点和PSWPSW装入装入CS:IPCS:IP和和FLAG)FLAG)33中断处理过程图中断处理过程图关中断关中断断点保护断点保护转中断服务转中断服务保护现场保护现场开中断开中断中断服务中断服务恢复现场恢复现场返回主程序返回主程序执行一条指令执行一条指令指令结束指令结束INTR1?取下一条指令取下一条指令NN 从数据线读中断类从数据线读中断类型号型号PSW入栈入栈清清IF和和TFCS

27、、IP入栈入栈中断向量中断向量送送CS,IP执行执行PUSH指令指令 用于中断嵌套。用于中断嵌套。若无中断嵌套,可若无中断嵌套,可放在恢复现场前放在恢复现场前 执行执行POP指令指令原原PSW,IP,CS出栈,返回主程序出栈,返回主程序348086/8088的中断过程的中断过程8086/8088的中断响应过程完成当前指令内部中断NMIINTRTF=1执行下一条指令IF=1响应中断读类型码标志入栈调服务程序CS、IP入栈清除IF、TF令TEMP=TF又有NMITEMP=1执行服务程序CS、IP出栈标志出栈继续执行被中断的程序YNNNNYYYYNNYYNIF=1读类型码N形成中断类型码357.2.

28、5 中断返回 指令:指令:IRET 断点装入CS:IPPSW装入FLAG36例题例题例:某中断的中断类型号为例:某中断的中断类型号为68H68H,其中断过程为:,其中断过程为:(1 1) 计算存放计算存放中断中断服务程序入口地址服务程序入口地址的的地址地址=68H=68H* *4=1A0H4=1A0H;(2 2) 取中断入口地址的取中断入口地址的段内偏移量装入段内偏移量装入IPIP,IP=2050HIP=2050H ,段码装入段码装入CSCS,CS=A000HCS=A000H;(3 3)转向)转向中断服务程序;中断服务程序;(4 4)中断返回中断返回502000A0001A0H001A2H001A4H存放地址=68H*4=1A0H2050A000STIPUSH DSIRET中断服务程序A000:2050I

温馨提示

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

评论

0/150

提交评论