微机原理讲义(第七章 中断系统)

上传人:飞*** 文档编号:5995875 上传时间:2017-09-08 格式:DOC 页数:12 大小:62KB
返回 下载 相关 举报
微机原理讲义(第七章 中断系统)_第1页
第1页 / 共12页
微机原理讲义(第七章 中断系统)_第2页
第2页 / 共12页
微机原理讲义(第七章 中断系统)_第3页
第3页 / 共12页
微机原理讲义(第七章 中断系统)_第4页
第4页 / 共12页
微机原理讲义(第七章 中断系统)_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《微机原理讲义(第七章 中断系统)》由会员分享,可在线阅读,更多相关《微机原理讲义(第七章 中断系统)(12页珍藏版)》请在金锄头文库上搜索。

1、1第七章 中断系统7.1 中断系统的基本概念一、中断1、中断及中断源(1)定义中断:在 cpu 正常运行程序时,由于内部事件或外部事件所引起的 cpu 暂时停止正在运行的程序,转而去执行请求 cpu 服务的内部事件或外部事件的服务子程序,待该服务子程序处理完毕后又返回到被中止的程序继续运行,这个过程叫做中断。中断源:引起中断的原因或来源叫做中断源。(2)中断源的种类:故障中断,如电源掉电、内存奇偶错等;软件中断,如 cpu 执行某些指令或操作引起的中断;输入输出设备中断,如打印机、CRT、磁盘等;实时时钟,如定时器提供的实时信号等。2、中断系统的功能(1)能够正确识别中断请求,实现中断响应、中

2、断处理及中断返回。(2)能够实现中断优先级排队。(3)能够实现中断嵌套。二、中断过程1、可屏蔽中断与不可屏蔽中断分类:根据 cpu 处理中断的方法可分为可屏蔽中断和不可屏蔽中断。可屏蔽中断:是指能被 cpu 禁止的中断,即 cpu 能根据具体情况拒绝响应某些中断源的中断请求。 (一般是由 cpu 内部中断允许触发器进行控制的)不可屏蔽中断:不能被 cpu 禁止的中断,即不受 cpu 内部中断允许触发器的空合作,一旦中断源有请求,cpu 将立即响应进行处理。2、中断处理的全过程过程:中断请求、中断排队、中断响应、中断处理和中断返回。(1)中断请求外设进行中断请求条件:一是外设要求 cpu 服务;

3、二是该外设不被中断系统屏蔽。(2)中断排队定义:发生在中断源之间,是中断系统根据中断源的工作性质,分轻重缓急安排优先顺序,使 cpu 首先响应高一级中断,称为中断排队。2方法:软件排队(程序简单接口电路)硬件排队(包括优先权编码电路、优先权中断链排队、中断控制器)软件排队:使用软件查询的方式,优先查询优先级较高的中断请求。查询程序如下:首先查询电源故障是否有中断请求:有,则转向电源故障的处理程序;没有,才依次继续查询磁盘的中断请求等。最后查询打印机的中断请求。程序如下:or al,alout 50h,al ;送屏蔽位,开放所有中断in al,40h ;读中断请求寄存器的内容test al,01

4、hjnz pnftest al,02hjnz disstest al,04hjnz lltest al,80hjnz pp硬件排队:通过硬件排队电路判断和确定中断源的优先级。菊花链结构:越靠近 cpu 的接口设备其优先级越高,排在菊花链中较后的接口设备其优先级越低。微机中常用的方法是:采用可编程的中断控制器 8259A。3、中断响应定义:cpu 的中断系统为优先级最高的中断请求服务时,查找相应的中断服务程序入口地址的过程,称为中断响应。条件:可屏蔽中断:一是 cpu 内部处于开中断状态,二是在 cpu 执行的现行指令结束后。非屏蔽中断:cpu 执行的现行指令结束后。4、中断处理(1) 关中断(

5、硬件)(2) 保留断点(硬件)(3) 转向中断服务程序的入口地址(硬件)(4) 执行中断服务程序(软件)中断处理子程序应注意的几点:(1) 保护现场:中断处理子程序的开始要将有关的各个寄存器的内容和标3志寄存器推入堆栈保护起来。(2) 开中断(用指令开中断):目的是实现中断嵌套。(3) 关中断:为保证正确恢复现场,此期间禁止其他的中断请求。(4) 恢复现场:将程序开始保护的寄存器的内容恢复,以便主程序的运行。(5) 开中断:返回主程序后能继续响应新的中断请求。(6) 返回:最后一条指令必须是中断返回指令。5、中断返回:从堆栈中弹出断点地址,返回被中断的程序。7.2 8086 的中断结构一、中断

6、源的类型8086 中断系统特点:(1) 可以处理 256 种不同的中断。每个中断对应一个中断类型码,编号 0-255。(2) 按中断产生的方法分为:外部中断和内部中断。1、内部中断:也称软件中断,是由 cpu 的内部指令引起的中断。(1) 除法错中断:中断类型码为 0。(2) 单步执行中断:中断类型码为 1,一般用于 debug 调试。(3) 执行 into 指令产生中断:中断类型码为 4。(4) int n 指令中断:中断类型码为 n,告诉 cpu 调用哪个服务程序来处理此中断,n 的范围为 0-255 之间。2、外部中断定义:也称硬件中断,来自于 cpu 的中断引脚,目的是处理随机发生的外

7、部事件。分类:(1) 非屏蔽中断:特点: 通过 cpu 的 NMI 引脚引入,不受 cpu 内部中断允许标志 if 的影响,中断类型号为 2。 优先级较高,NMI 引脚出现中断请求时,cpu 执行完当前指令立即响应。 一般用于处理系统的重大故障,比如电源掉电、内存奇偶错等。(2) 可屏蔽中断:特点: 通过 cpu 的 INTR 引脚引入,受 cpu 内部中断允许标志 if 的影响。If为 1 时,响应;否则禁止。 通过可编程中断控制器 8259A 进行管理(可管理多个可屏蔽中断) 。二、中断向量表1、中断向量表4定义:在具有向量中断的微机系统中,每个外设都预先指定一些不同的中断向量码。当 cp

8、u 识别出某个外设的中断请求并予以响应时,控制逻辑就将该外设的中断向量码送入 cpu,以自动地提供相应的中断服务程序的入口地址,转入中断服务。中断向量表:8086 系统中,规定在内存的最低端 0 段的 0-03ffh 区域内的1KB 的空间存放一张中断向量表,用于存放各个中断源的中断处理程序的入口地址(称为中断向量) 。每个向量占 4 个字节,可存放 256 个中断向量。中断类型码与中断向量所在位置的关系公式:中断向量在中断向量表中的首地址中断类型号4注:(1)256 个中断源的前 5 个是专用中断:类型 0 是除数为 0 的中断,类型 1 是单步中断,类型 2 是非屏蔽中断,类型 3 是指令

9、中断中的断点中断,类型 4 为溢出中断。其他的中断类型可供中断指令和外部中断使用。(2)用户在对中断系统进行设计时,首先要将外设的中断服务子程序的入口地址填入到中断向量表中,以便 cpu 能够自动的得到中断服务程序的入口地址。中断向量的存取方法:(1)直接存取:用指令直接将中断向量填入中断向量表。将中断服务程序入口地址的偏移地址送入到以 n4 为表地址的低字单元中,段地址送入到以 n4+2 为表地址的高字单元中。程序如下:mov ax,0mov es,axmov bx,n*4mov ax,offset int1mov es:word ptr bx,axmov ax,seg int1mov es

10、:word ptr bx+2,axsti.int1 procretint1 endp5直接从中断向量表中取出中断向量的程序如下:push dsmov ax,0mov ds,axmov dx,n*4+2mov es,dxmov dx,n*4pop ds(2)利用 dos 系统功能调用进行中断向量的存取25h 子功能可把中断向量放入相应的中断向量表中:mov al,nmov ah,25hmov dx,seg int1mov ds,dxmov dx,offset int1int 21hstiint1 procretint1 endp35h 子功能可以从中断向量表中取出中断向量:mov al,nmov

11、 ah,35hint 21h在 es:bx 中得到中断类型码为 n 的中断向量,段地址在 es 中,偏移地址在 bx 中。内部中断的特点:(1)类型号确定:一是系统已经预先规定好,一是包含在指令当中。(2)不执行中断响应总线周期。(3)除单步中断外,都属于非屏蔽中断。所有内部中断都不受 if 的影响,都不可被禁止。(4)除单步中断外,任何内部中断的优先级都比外部中断的高。(5)无随机性。外部中断的特点:6(1)非屏蔽中断的类型号已确定,为 2 号中断。不能被禁止,不需要执行两个中断响应周期。(2)对于可屏蔽中断,cpu 响应时,需要执行两个中断响应周期,发出两个INTA 负脉冲:第一个 INT

12、A 负脉冲通知中断控制器,中断已被响应;第二个 INTA 负脉冲要求中断控制器将中断源的中断类型码送上数据总线,供 cpu 读入,以便取得中断服务程序的入口地址。2、8086 对中断的响应(1)中断响应时序(2)中断过程执行两个中断响应总线周期,用于取得中断类型码执行 1 个总线写周期,将程序状态字 psw 内容入栈保护if0,tf0,即内部关中断执行 1 个总线写周期,将下一条指令的段地址 cs 寄存器的内容入栈保护执行 1 个总线写周期,将下一条指令的偏移地址 ip 寄存器的内容入栈保护执行 1 个总线读周期,将中断向量的前两个字节即偏移量送 ip 寄存器执行 1 个总线读周期,将中断向量

13、的后两个字节即段地址送 cs 寄存器。注:非屏蔽中断和软件中断,只从第二步开始执行。三、中断源优先级优先级:从高到低 除法错中断溢出中断int n 指令中断非屏蔽中断可屏蔽中断单步中断处理顺序:按照优先级的顺序查询中断源。注意:(1)中断处理过程中,cpu 先将程序状态字推入堆栈,清除 if 和 tf标志,再将 cs、ip 推入堆栈。(2)转入中断处理后,还要再次检测是否有非屏蔽中断请求、单步中断,没有才执行中断处理程序。(3)对于可屏蔽中断,一旦有请求,要判断 if 是否为 1,为 1 响应。可屏蔽中断需要获取中断源的类型码。(4)一旦进入中断处理过程,cpu 内部就会自动关中断。四、BIO

14、S 系统功能调用int 16h ;键盘7int 10h ;显示器int 17h ;打印机int 1ah ;实时时钟int 13h ;磁盘7.3 可编程中断控制器一、中断控制器的功能功能:中断控制器就是在有多个中断源的系统中,接收外部的中断请求,并进行判断,选出当前优先级最高的中断请求,并将此请求送到 cpu 的intr 引脚。Cpu 响应后,仍负责外部中断源的请求管理。当发现优先级更高的中断请求,会把此请求再次送往 cpu,实现中断嵌套。内部结构:(1)中断请求寄存器(IRR)和正在服务寄存器(ISR):用于处理 IR 输入线上的中断请求信号。IRR 用于存放正在请求服务的所有中断级;ISR

15、用于存放正在被 cpu 服务的所有中断级。(2)中断屏蔽寄存器(IMR):表示要屏蔽中断请求线上的哪些位。IMR 对IRR 起屏蔽作用,屏蔽优先级较高的输入不影响优先级较低的中断请求线。(3)优先级分析器:确定 IRR 中置 1 的各位的优先级。优先级最高的被选出来,并用 负脉冲选通送入 ISR 的对应位。INTA(4)数据总线缓冲器:用来把 8259A 接至系统数据总线上去。用于传送控制信息和状态信息。(5)读写控制逻辑:用于配合数据总线缓冲器工作。接受 cpu 送来的输出命令,将 8259A 的状态传送到数据总线上去。(6)级联缓冲器/比较器:存储并比较系统中所用到的全部 8259A 的

16、ID 号。(7)控制逻辑:可将 IR7-IR0 上的中断请求信号发向 cpu 的中断请求引脚,8并控制接收 cpu 发来的中断响应信号。二、8259A 的引脚及其编程结构1、引脚信号D7-D0:8 根数据线,与系统总线相连。:片选信号。低电平有效时,启动 8259A 工作。CSA0:提供 8259A 访问两个不同的端口地址。奇地址:较高地址;偶地址:较低地址。:写信号。用来通知 8259A 从数据总线上接收数据,即 cpu 向 8259A 发送WR命令字。:读信号。用来通知 8259A 将某个内部寄存器的内容送到数据总线上。DINT:和 cpu 的 INTR 相连,用来向 cpu 发中断请求。:用来接收来自 cpu 的中断应答信号。INTAIR7-IR0:8 条外设的中断请求线。CAS2-CAS0:8259A 级联时指出具体的从片。/ :双向。作为输入时,确定 8259A 是主控(

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

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号