第7章_中断控制接口.ppt_第1页
第7章_中断控制接口.ppt_第2页
第7章_中断控制接口.ppt_第3页
第7章_中断控制接口.ppt_第4页
第7章_中断控制接口.ppt_第5页
已阅读5页,还剩116页未读 继续免费阅读

下载本文档

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

文档简介

1、第7章中断控制接口,第1节中断概述,1。概念,所谓中断是指当中央处理器正常运行程序时,由于内部或外部的随机事件,中央处理器暂时挂起正在运行的程序,而是执行请求中断的外围设备(或内部事件)的中断服务程序,并在中断服务完成后返回挂起的程序。这个过程叫做中断。第二,利用中断,主机可以与外设并行操作;实时处理;故障处理,中断概念1。中断源会导致程序中断的事件称为中断源。有些中断是已知的,比如指令中断源,它是以指令的形式给出的,比如INT 20H,它像其他汇编指令一样出现在程序中,所以这个中断源什么时候出现是预先知道的;一些中断源是随机的,也就是说,发出中断请求的时间是未知的,例如硬件中断。中断源通过中

2、断控制接口电路输入到中央处理器,中断源的具体发生时间与外部硬件电路有关。2中断优先级当多个中断源同时到达系统时,需要对中断源进行排队,先执行高优先级的中断服务程序,再执行低优先级的中断服务程序。中断优先级的安排可以通过软件查询或硬件电路来完成。软件查询方式的硬件电路简单,但需要用程序来控制执行的优先顺序。这种方法可用于简单的小型微型计算机系统。硬件电路实现优先级排列,无需程序控制。中断嵌套所谓的中断嵌套是指高优先级的中断中断低优先级中断服务程序的执行。中断类型编号中断类型编号是指每个中断源的编号。每个中断源都有一个唯一的编号,每个编号对应于它自己的中断服务子程序。当响应一个中断时,你必须首先获

3、得中断类型号,然后你可以找到相应的中断服务子程序。中断处理,1。中断请求。当外围设备需要中央处理器服务时,它们应该首先发出中断请求。发出中断请求的外设是中断源。广义地说,能够导致中央处理器程序中断的随机事件被称为中断源。中断不仅可以从外部产生,也可以从中央处理器内部产生。这些中断源的共同特征是它们都需要中央处理器来正确处理它们。并且处理步骤(程序)是预设的。2.中断仲裁当系统有多个中断源时,如果两个或多个中断源在某个时间同时发送中断请求,因为中央处理器通常只有一条中断请求线(INTR),并且中央处理器在任何时候只能响应和处理一个中断,这就要求中央处理器识别优先级最高的中断源并对其做出响应。中断

4、仲裁是为了解决请求中断的事件的优先级问题。中断仲裁有两种方法:软件仲裁和硬件仲裁。软件仲裁电路简单,仲裁速度慢;硬件仲裁电路复杂,仲裁速度快。使用软件方法确定中断优先级并申请中断。中央处理器响应中断后,用软件判断中断服务程序中的中断源。异或铝,铝MOV DX,340小时在铝,DX RCR铝,1 JC SERV0 RCR铝,1 JC SERV1,读取中断寄存器状态;判断申请中断是否为0。判断是否为1#应用中断;清除CF,用硬件方法确定中断优先级,菊花链电路,从上到下中断优先级,上层端口的中断请求可以屏蔽下面的中断请求。硬件电路自然完成中断仲裁。3.中断响应。中断响应是指中央处理器中断当前正在进行

5、的处理任务,并转向与中断请求相对应的中断处理程序的过程。在中断响应过程中,需要解决以下四个问题:保护断点和保护字段(如标志寄存器或其他寄存器);中央处理器关闭中断,此时不允许被新的中断源中断;转到中断请求对应的处理程序。最后一个问题是实现转移目前常用的方法是使用中断向量,即响应的中断源在中断响应时向中央处理器提供自己的中断向量号,中央处理器可以根据中断向量号找到中断服务程序的入口地址,然后转向中断服务程序。4.中断处理,即执行中断服务程序以满足中断源提出的处理要求,是一个软件编程问题,类似于子程序的编译原理。在中断服务程序中,STI指令用于打开中断,实现中断嵌套,服务程序中使用的寄存器需要进行

6、预保护(如果在中断响应中没有自动保护中央处理器),在服务程序后增加恢复场景语句。5.中断返回,是将控制权从中断服务程序转移到中断程序的过程。执行中断返回指令类似于一般的“返回主程序”指令。不同的是,大多数中断返回指令还有其他附加功能,如部分或完全恢复中央处理器的位置(除了程序计数器,还有标志寄存器FR等)。),并且一些CPU中断返回指令可以自动恢复所有通用寄存器的内容。第2,8086,1节中的中断系统。中断源和中断识别。中断源:发送中断请求或中断内部原因的外部设备。1)外设中断:由系统外部设备请求与中央处理器交换信息而引起的中断;2)指令中断:方便用户使用系统资源或调用软件的中断指令集,如调用

7、输入输出设备的基本输入输出系统和操作系统功能以及设置断点中断的中断指令;INT 21H 3)程序中断:由于程序员的疏忽和算法错误导致的运行过程中的各种错误而导致的中断。如溢出中断、地址越界中断等。4)硬件故障中断:在机器运行期间,由于硬件中的意外或固定错误而导致的中断。例如奇偶校验错误和电源故障。中断识别:在中央处理器响应中断后,它只知道有一个中断源请求中断服务,但它不知道哪个中断源请求中断。因此,中央处理器应该设法找到中断源。中断识别的目的是形成中断源的中断服务程序的入口地址,使中央处理器可以将这个地址放入CS:IP寄存器,从而实现程序的传输。1.硬件中断,由外部事件引起,即外部设备申请中断

8、。硬件中断的产生是随机的,并且中央处理器不知道何时提前产生中断。8086中有两种硬件中断:非屏蔽中断NMI和屏蔽中断INTR。NMI:当NMI引脚有一个上升沿触发信号时,产生一个中断类型为2的NMI请求,并将其传输到相应的服务。中断无法屏蔽,具有最高优先级,通常用于紧急故障处理,由系统使用。在8086中,NMI用于存储奇偶校验错误、输入输出通道错误和协处理器错误,它们通过或门进入NMI线。非屏蔽中断,17针,非屏蔽中断请求信号,输入。上升沿触发(边沿触发)。未屏蔽的中断请求不受中断标志IF的影响,并且不能被软件控制(屏蔽)。每当一个正边沿触发信号输入到这个终端,在当前指令周期结束后,中央处理器

9、将进入中断类型为2的中断处理器。在8086微型计算机中,这个中断用于输入输出和存储器之间的奇偶校验。INTR:中断电平的触发可以屏蔽,高电平有效,中央处理器响应INTR的条件是:1)如果为1,中断开启;2)没有屏蔽的中断和总线请求;3)中央处理器执行当前指令。中央处理器在指令周期的最后一个测试状态对INTR线进行采样。如果满足上述条件,中央处理器将响应中断请求,并开始两个中断响应周期。像总线周期一样,每个中断响应周期由四个测试状态组成。在执行每个指令的最后一个时钟周期,中央处理器将对INTR信号进行采样。如果中央处理器的中频为1并且INTR信号为高,则中央处理器将在当前指令结束后响应中断请求,

10、并进入,INTR(中断请求),24针,中断响应信号,输出,连续两个总线周期的负脉冲。(中断确认),当外设向中央处理器申请屏蔽中断INTR时,如果中央处理器允许中断,它会连续向外设发送两个负脉冲。第一个负脉冲通知外设中断已被接受;外设在第二个负脉冲时向数据总线发送中断类型代码。中断响应信号,中断响应周期时序图,1)在第一个响应周期,中央处理器输出总线锁定信号,以防止其他处理器或直接存储器存取控制器占用总线。同时,外设接收到这个信号,知道中央处理器已经响应了中断,并开始准备发送中断类型代码;2)在第二个响应周期,总线锁定信号LOCK被释放,ALE无效,允许数据线工作。此时,外围设备(中断控制器)将

11、准备好的中断类型代码发送到数据总线,供中央处理器读取。2。软件中断,软中断由用户在程序中发出中断指令INT nH产生,其中n称为软中断号。软中断发生的时间由程序安排,并且可以预测。软中断包括只读存储器基本输入输出系统中断和操作系统中断。只读存储器-基本输入输出系统中断:占用中断号10H1FH、05H、40H、41H、46h和46H,包括对输入输出设备的控制。如:INT 16H键盘输入输出控制;内部1AH时钟控制,操作系统中断:占用中断号20H3FH,提供操作系统的主要功能。例如INT 21H系统函数调用。公共DOS特殊中断INT 22H程序结束INT 23H Ctrl-C退出地址INT 24H

12、严重错误退出地址专用于内核代码,用户不能在应用程序中直接调用它。b .未发布的DOS特殊中断,c. DOS可调用中断(5) INT 20H程序终止退出处理程序INT 25H磁盘扇区读取器INT 26H磁盘扇区写入器INT 27H程序终止常驻处理程序INT 2FH多路复用中断处理程序,d .系统函数调用中断INT 21H(带有00H6CH子函数)供用户直接调用,即DOS保留30H3FH作为DOS,新INT 33H鼠标中断,未定义的自由中断(40HFFH)。基本系统没有规定它们的用途,这些用途可以由系统扩展或根据应用需要重新定义。(1)系统保留区(40h5fh),(2)用户保留区(60h6fh),

13、(3)扩展外部硬中断区(70H77H):8259片内使用,(4)未用区(78h7fh),(5)基本使用区(80hefh),(6)内部使用区(6)在指令执行过程中,当中央处理器发现一些意外事件时,启动内部逻辑,执行与预设中断号对应的中断服务程序。这种中断也是一种未屏蔽的中断,其处理类似于软中断,有时被归类为软中断。(1)0号中断:除数为0的中断。当微处理器执行DIV(无符号数除法)或IDIV(有符号数除法)指令时,如果商超过机器能表示的最大范围,就像被0除一样,那么就产生0号中断。(2)1号中断:单步中断。如果在微处理器执行一条指令之前,单步标志TF被检测为1,则在指令执行之后,单步标志TF将立

14、即停止,从而产生1号中断,该中断支持程序的单步跟踪功能。例如,debugger调试器中的跟踪命令t将TF设置为1。(3)3号中断:断点中断,当微处理器执行当前指令代码CCH(INT 3H)时,立即引起3号中断。系统不提供断点中断服务程序,断点中断服务程序通常由实用软件自行设计。例如,DEBUG的G命令允许设置多达10个程序断点,并在断点处显示指令执行结果供用户检查。(4)4号中断:溢出中断,当微处理器执行CEH(进入)指令时,当溢出标志为1时立即引起。当操作期间溢出标志为1时,中央处理器不会自动变成溢出处理程序。OF=1只是溢出中断的必要条件。在编程时,如果用户想监控某个操作的溢出,就应该在这

15、些操作指令后添加INTO指令,并设计相应的溢出中断服务程序。当OF=0时,输入不产生任何运算。8086中断源(总共256 00HFFH),中断优先级:软中断,NMI,INTR,单步中断。,软中断中没有级别。在第三部分,中断向量表、中断向量表和中断服务类型号(中断向量),中断(除了软中断)是随机事件。中央处理器应在每个指令周期巡视中断源,也就是说,在程序执行期间,可以随时暂停当前程序,并转移到与所申请的中断源对应的中断服务程序。问题:中央处理器如何找到中断服务程序的地址?在程序的正常运行中,不能出现在服务地址中,不能有CALL中断服务程序指令,因为中断是随机的。8086系统共有256个中断源,这

16、些中断源都有编号,后面是00HFFH号,称为中断类型号。如果溢出中断是中断4,等等。每个中断类型号对应相应的中断服务程序,这些中断服务程序可以存储在存储器的任何地方。但是一旦程序运行,这些服务的入口地址是已知的,并固定在内存中,每个服务程序的入口地址被称为中断向量。对应于这些中断类型号的服务入口地址被分组到一个表中,并被放置在存储器的固定区域中。这个按顺序存储服务入口地址的表称为中断向量表。中断向量表存储在存储器的底部,每个服务地址(中断向量)占用4个单元(CS:IP),8086总共有256个中断源,因此中断向量表占用4,256=1,024个存储单元,地址为:00000H003FFH。0000

17、0h,003ffh,00000h,00000h,0中断服务地址:MMNNH:XXYYH,1,1中断服务地址:AABBH:CCDDH,在中断系统中,相当多的中断源是未定义的,也就是说,中断向量为空,等待分配。8086系统为256个中断类型号分配了地址,其中类型号04是一个特殊的中断,相应的中断服务程序的入口地址已由系统定义,用户不能更改。04型分别用于除法错误、单步中断、NMI中断、断点中断和溢出中断。05H3FH类型是系统使用的中断,大部分是由(中央处理器公司和操作系统公司)开发和使用的。例如,类型08H0FH是8259A中断向量号,10H1FH是BIOS特殊中断向量号,20H3FH是DOS特殊向量号,21H是DOS函数调用。用户可以使用中断矢量数00000h、003ffh、0004h、0008h,这些数字在40H后不被系统保留。如何根据中断类型号获取服务入口地址?则中央处理器将中断类型号乘以4,以获得存储服务地址的中断向量表的第一个地址,从该地址开始的四个单元存储所需的服务地址。4N34N233604N14N,例如,中断类型号为70H,用于存

温馨提示

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

评论

0/150

提交评论