资源预览内容
第1页 / 共12页
第2页 / 共12页
第3页 / 共12页
第4页 / 共12页
第5页 / 共12页
第6页 / 共12页
第7页 / 共12页
第8页 / 共12页
第9页 / 共12页
第10页 / 共12页
亲,该文档总共12页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
102第七章 中断接口技术内容提要: 1中断的基本概念; 28086 系统的中断源、矢量中断; 38259A 的功能、结构特点、中断响应过程、编程; 48259 A 的应用举例; 58259A 编程实验。 学习目标 : 1掌握 8086 内部中断的特点; 2掌握中断的基本概念,掌握对外部中断响应的区别; 3深刻理解中断类型码、中断矢量和中断向量表的概念,以及如何对中断服务程序寻址; 4了解 8259A 的编程结构,理解 8259A 工作方式、有关命令和初始化编程及其在 PC 机中应用。 难点: 8259A 工作方式、命令的理解。 学时: 6 7.1. 概述一中断的基本概念 中断:是指 CPU 在正常运行程序时,由于内部或外部事件引起 CPU 暂时中止执行现行程序,转去执行请求 CPU 为其服务的那个外设或事件的服务程序,待该服务程序执行完后又返回到被中止的程序这样一个过程。 中断源:能发出中断申请的外设或引起中断的原因。 中断源种类:I/O 设备、数据通道、实时时钟、故障源、软件中断。 1. 为什么要用中断? 中断技术的优点: (1)并行操作:指 CPU 和多个外设并行操作;分时操作:指 CPU 可分时执行多个用户程序和多道作业; (2)实现实时处理; (3)故障处理。;(4)基本功能调用:在 PC 机中,通过软件中断可实现 DOS 功能调用和基本 BIOS 调用。 2. 中断类型 (1) 硬中断:也称为外部中断,它可分为两种: 一种是由中断电路发生的中断请求信号在 CPU 的 INTR 端引起的中断,也称可屏蔽中断。可屏蔽中断:凡是微处理器内部能够屏蔽(IF=0)的中断。 另一种是 CPU 的 NMI 端引起的中断,也称不可屏蔽中断。 不可屏蔽中断:凡是微处理器内部不能够屏蔽(不受 IF 状态影响)的中断。 (2)软件中断: 也称内部中断,是指程序中使用 INT 指令引起的中断。 3. 中断系统的功能 中断系统是指实现中断而设置的各种硬件与软件,包括中断控制逻辑及相应管理中断的指令。中断系统应具有以下功能: (1)实现中断请求的检测、中断响应、中断服务与返回; (2)能实现中断优先级排队; (3)能实现中断嵌套。 103二中断的处理过程 大致可分为:中断请求、中断响应(关中断、保护断点、查找中断源等) 、保护现场、开中断、返回五步。 (1)中断请求 CPU 外部必须设置一个中断请求触发器锁存中断请求信号,以便 CPU 在现行指令周期结束时采样,还可设置中断屏蔽触发器。见下图。 (2)中断响应 中断响应的条件: 有中断请求; 外设中断没有被屏蔽; CPU 允许中断; 当前指令执行完。不可屏蔽中断申请:CPU 执行完当前指令后就响应; CPU 响应中断要自动完成下列几步操作: 发中断响应信号 ,同时内部关中断(IF0) ,以禁止其它可屏蔽中断请求; 把 F 以及程序断点处的 CS、IP 内容压栈,以便中断处理完后能正确地返回主程序; 中断服务程序入口地址段地址CS ,偏移地址 IP 。 (3)中断处理程序员需在中断服务程序中,做以下事: 关中断 ; 保护断点 ; 识别中断源:查询中断,向量中断; 保护现场; 执行中断服务程序; 恢复现场; 开中断; 返回。 中断返回指令使得 CPU 自动地将堆栈中保存的 F 和程序断点处的 CS、IP 值弹到 F、CS 、IP中,使 CPU 返回主程序断点处继续执行主程序,同时中断返回指令使得 IF 自动恢复响应中断前的开中断状态。 三中断优先级当系统中有多个中断源时,需要考虑优先权问题,即确定 CPU 首先为哪个中断源服务,以及服务的次序。优先权:根据中断源要求的轻重缓急,排好中断处理的优先次序,即优先级。104当 CPU 正在处理中断时,也能响应优先级更高的中断请求,而屏蔽掉同级或较低级的中断请求,即所谓多重中断的问题。确定中断源的优先权一般采用以下方法:1软件查询优先方式:是最简单的中断优先处理方式,8 个外设中断请求组合起来,作为一个端口,赋以设备号,接口电路见 P265 图 7-4。把各个外设的中断请求信号相“或”后,作为 INT 信号,这样任何一外设有中断请求都可以向 CPU 发出 INT 信号。CPU 响应中断后,把中断寄存器的状态作为一个外设信息读入 CPU,逐位检测其状态,若检测出某位有中断则转入响应的中断服务程序入口。优点:不需要有判断优先级的硬件排队电路。缺点:在中断源较多的情况下,由询问跳到相应的中断服务程序的入口时间长。2硬件优先权排队电路:实现硬件查询的优先级中断链电路接口电路见 P266 图 7-5。来自 CPU 的中断响应信号从 A 设备开始串行地往下传送:当 A 设备有“中断请求”时,则“中断响应”信号在门 A2 处被封锁,不再下传,使后面的设备得不到 CPU 的“中断请求”信号。同时 A 设备的“数据允许”线 EN 变为有效,允许 A 设备使用数据总线,将其中断标志放上数据总线进入 CPU。当 A 设备无“中断请求”时, “中断响应”信号可以通过 A2 门传给下一个设备 B。3中断优先级编码电路:用硬件编码器和比较器组成的中断优先级排队电路见教材 P267 图 7-6 所示。四中断的嵌套1中断嵌套的定义2中断嵌套与单级中断的区别:(1) 加如屏蔽本级和较低级别中断请求环节;(2) 在中断服务前要开放中断;(3) 中断服务结束之后,为了使恢复现场过程不受到任何中断请求的干扰,必须执行关中断指令,然后才能恢复现场;(4) 恢复现场后,应该执行开中断指令,以便允许任何其他的等待着的中断请求有可能被 CPU 响应。只有在执行完开中断指令后面的一条指令后,中断才被开放。7.2. 8086/8088 中断系统一 . 8086 系统的中断源 8086CPU 总共允许有 256 级中断,按产生的原因,系统有如下中断源: 二外部中断1不可屏蔽中断 NMI 边沿触发,正跳沿有效,此类中断不受中断允许标志位的限制,也不能用软件进行屏蔽。当NMI 端有一个上升沿触发信号时,CPU 就会在结束当前指令后,自动从中断向量表中找到类型 2105中断服务程序的入口地址,并转去执行。NMI 是一种比 INTR 优先级高的中断请求。 2可屏蔽中断 INTR 电平触发,高电平有效,该信号若为高电平,表示 I/O 设备向 CPU 发出中断申请,若IF=1,CPU 允许中断,就会在结束当前指令后响应该外设的中断请求,进入可屏蔽中断的处理程序。 三内部中断内部中断是通过软件指令或软件陷阱而调用的非屏蔽中断(指不受 IF 状态影响) ,这是由程序运行的状态和指令代码执行后自动启动而不是由外界中断请求来调用的。 内部中断按其性质又可分为软件陷阱和软件中断。软件陷阱是指:在某些指令执行期间 FR 的标志位满足设定的条件或 CPU 的状态符合某种情况从而触发 CPU 内部逻辑去启动所需要的中断服务子程序,如除法出错中断和单步中断。软件中断是指通过指令来调用中断服务子程序。 类型:8086 的内部中断有溢出中断、除法错中断、断点中断、软中断及单步中断。 1除法溢出中断 当除数为 0 或除法结果商超出规定存放范围时,此时将自动产生类型号为 0 的内部中断。注意点:没有对应的中断指令。 2溢出中断 溢出中断是通过 INTO 中断指令实现的。该指令跟在有符号数的算术运算指令以后,当在程序执行过程中,遇到 INTO 指令,且此时溢出标志 OF=1 时,则产生一个中断类型为 4 的中断,并转入溢出中断处理。 例:MOV BL,126 MOV AL,5 ADD AL,BL 执行到此指令后只能将 OF 置 1 INTO 执行到此产生中断 3软中断 是系统以软中断指令 INT n 方式实现的,n 为中断类型号,5n255,04 中断类型号作为专用中断的类型号,不允许用户修改; 53FH 为系统备用中断,一般不允许用户改作其它用途,并且其中许多中断已被系统开发使用,如 10H1FH 为 ROMBIOS,21H 为 DOS 功能调用,40HFFH 为用户可用的中断,用户可用 INT n 使用,也可作为可屏蔽中断的类型号。 4单步中断 为了用户调试上机方便,当 TF=1 时,则每执行一条指令后,可以产生一个类型号为 1 的中断。在中断处理程序的控制下,可以给出有关寄存器的内容或状态标志位的状态,以便了解程序的执行情况。 5断点中断 断点中断也是提供给用户的一种程序调试手段。在相应的程序语句后设置断点,就可以分段落调试程序,从而避免单步调试的冗长和繁琐。 设置断点,实际上就是在用户程序的指定点(即对应的某一个存储单元,该单元一定是某条指令的第一个字节存储单元)用单字节的中断指令 INT 3 来代替程序中原有指令的第一个字节代码(操作码) ,同时把原有指令第一个字节操作码保存起来。 当执行到断点位置时,就会执行中断指令 INT 3,进入类型码为 3 的中断服务子程序,显示一系列寄存器值和一些重要信息,供用户判断。 断点中断返回前,中断服务程序还负责恢复设置断点时原程序中被 INT 3 指令所替换的原来指令的第一个字节的操作码。然后修改断点地址,返回主程序再从被恢复的那条指令继续执行。6内部中断的特点:(1) 中断类型码或者包含在指令中,或者是预先规定的;106(2) 不执行 INTA 总线周期;(3) 除单步中断外,任何内部中断都无法禁止;(4) 除单步中断外,任何内部中断的优先级都比任何外部中断的优先级高。7中断优先级见 P272 表 7-1 所示。四 中断矢量表 定义:将所有的中断处理程序的入口地址都集中在一起,构成一个中断矢量表。 特点:每个入口地址占 4 个字节,高地址的 2 个字节单元存放中断处理程序的段地址,低地址的2 个字节单元存放中断处理程序的段内偏移地址。 8086/8088 的中断向量表结构如教材 P272 的图 7-10。例:设某中断源的类型码为 13H,该中断源的中断服务程序的入口地址为 FF00H:2200H,试画出中断矢量表。 解:n=13 ,则 4n=13H*4=4CH 中断矢量表如下:当中断类型码为 n 时,则中断向量表指针为 4n,则有:五中断类型号的获取(两种情况) 对于系统专用中断,系统将自动提供 04 中断类型号, (溢出中断需在算术运算指令之后执行 INT O 指令,断点中断需执行 INT 3 指令)从而能自动转到中断处理程序中去; 对于可屏蔽中断 INTR,则需外接接口电路。目前主要是利用 8259A 中断控制器来产生外设的中断类型号。 六 8086 中断处理流程 1 CPU 在获得中断类型号后,先自动将标志寄存器入栈,并自动将 IF 和 TF 清零; 2然后自动将当前代码段寄存器 CS 和指令指针寄存器 IP 内容入栈,并根据中断类型号 n 从中断矢量表中取出中断处理程序的段地址送入 CS; 再从中断矢量表中取中断处理程序的偏移地址值送入 IP,从而实现向中断处理程序的转移; 3在中断处理程序完成后,用中断返回指令 IRET 恢复断点,从栈中弹回断点的偏移量和段地址值到 IP 和 CS 中,并恢复 FR 的内容,从而实现了向被中断程序的返回。 注意点:在处理程序的开始用开中断指令打开中断,以便实现中断嵌套。 7.3.可编程中断控制器 8259A 主要功能: 具有 8 级中断优先级控制,通过级连可扩展至 64 级中断优先级控制; 每一级中断都可以屏蔽或允许; 在中断响应总线周期,8259A 可提供相应的中断类型码; 有多种中断管理方式,可通过编程选择。 一 8259A 的内部结构与功能1071 8259A 的内部结构由上图可见 8259A 有 8 个基本组成部分
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号