第七章 86系列微型计算机的中断系统课件

上传人:我*** 文档编号:139315629 上传时间:2020-07-21 格式:PPT 页数:73 大小:721.50KB
返回 下载 相关 举报
第七章 86系列微型计算机的中断系统课件_第1页
第1页 / 共73页
第七章 86系列微型计算机的中断系统课件_第2页
第2页 / 共73页
第七章 86系列微型计算机的中断系统课件_第3页
第3页 / 共73页
第七章 86系列微型计算机的中断系统课件_第4页
第4页 / 共73页
第七章 86系列微型计算机的中断系统课件_第5页
第5页 / 共73页
点击查看更多>>
资源描述

《第七章 86系列微型计算机的中断系统课件》由会员分享,可在线阅读,更多相关《第七章 86系列微型计算机的中断系统课件(73页珍藏版)》请在金锄头文库上搜索。

1、第七章 86系列微型计算机的中断系统,中断技术出现在第二代微机的末期,是计算机发展的里程碑和革新,没有中断技术就没有计算机的发展,没有中断技术就没有计算机的今天,开机计算机就处于中断状态。,7.1中断的基本概念,中断功能的主要优点是,只有服务时才能得到CPU 的响应,而不需要CPU不断的查询。这样,CPU就可 以空出时间去做其他事情,直到接口需要它服务时为止。,当CPU正在运行某段程序(主程序或子程序)突 然有一个外部事件企图终止CPU现行程序,希望CPU对该事件服务,此时CPU若条件允许,就转到该事件的程序中运行,当程序结束后,CPU又回到原来程序的断点处继续运行,这样一个完整的过程称为中断

2、。,1. 中断的定义,2.中断过程,中断申请 中断响应 中断处理 中断返回,4.中断响应,CPU应工作在中断方式(CPU开中断) 申请中断的事件优先级别到位 CPU执行完当前一条完整的指令以后 当前没有发生复位(RESET)、保持(HOLD) 和非屏蔽中断请求(NMI),3.中断的意义,处理突发事件(实时处理) 可以实现多任务多用户管理 可以提高CPU的效率,若当前执行的指令是开中断指令(STI)和中 断返回指令(IRET),则他们执行完后再执行一条 指令,CPU才能响应INTR请求。另外,对前缀指令,如LOCK、REP等,CPU会把它们和它们后面的指令看成一个整体,直到这个整体指令执行完,方

3、可 响应INTR请求。,中断响应过程系统将自动完成3件事:, 关中断, 保存断点, 形成中断入口地址,CPU执行某中断服务程序时,可以响应中断优先级别 更高的中断请求,这就是中断嵌套。,二级嵌套,5.中断嵌套,根据事情的轻重缓急,中断级别可以由软件或硬件设置。,6.中断的优先级,对于中断的优先权问题,主要有三种解决方法:,1). 软件方案,硬件方案实现中断优先排队,主要是通过硬件电路的设计有目的的将某个中断设定为高级别或低级别。硬件电路有链形电路和编码电路。,2. 硬件方案,1).链形电路,2).编码电路,74LS148编码器管脚图及真值表,2. 软硬件方案,中断优先级的管理常通过软硬件结合的

4、方案实现,即通过可编程中断控制器(如8259A)实现对中断优先级的管理。这种方式既有硬件方案的逻辑简单、响应中断快速等优点,又可以通过软件控制命令字和操作命令字对中断优先级进行灵活设置,因此被广泛采用。,7.2中断的处理,中断服务程序要做保护现场、开中断、中断服务、 关中断、恢复现场、开中断并返回等6件事。程序结 构如下:,PUSH AX ;保护现场 . PUSH BX STI ;开中断 ;中断处理 CLI ;关中断 POP BX ;恢复现场 . POP AX ; STI ;开中断 IRET ;中断返回,(1)保护现场,CPU响应中断时自动完成寄存器CS和IP以及标志寄存器FR的保护,但主程序

5、使用的寄存器的保护则由用户根据使用情况而定。由于中断服务程序中也要用到某些寄存器,若不保护这些寄存器中断前的内容,中断服务程序会将其修改。,从中断服务程序返回主程序后,程序就有可能无法正确执行下去,由用户保护寄存器的这段程序称为保护现场,实质上是执行PUSH指令将需要保护的寄存器内容推入堆栈。,CPU接收并响应一个中断后自动关闭中断。但在CPU正在处理当前中断源时,有可能出现更优先的中断源发出中断请求信号给CPU的情况。此时,应停止对该中断的服务而转入优先级更高的中断处理,故需要开中断,否则,优先级高的中断将只在低优先级中断源的中断处理结束后才得到响应。当然,如果确认系统不会产生更高级别的中断

6、,就不必开中断。,(2)开中断,(3)中断服务,中断服务程序的核心就是对某些情况进行处理,如 传输数据、处理掉电紧急保护和各种报警状态等。,由于上述的开中断,因而在此应对应一个关中断过程,以便下面的恢复现场的工作顺利而不被打断。,(4)关中断,在返回主程序前要将用户保护的寄存器内容从堆栈 中弹出,以便返回主程序后继续正确执行主程序。恢复 现场用POP指令,堆栈为“先进后出”的数据结构,保护 现场时,寄存器的先后入栈次序要与出栈时次序相反。,(5)恢复现场,(6)开中断并返回,此处的开中断对应CPU响应中断后自动关闭中断。 在返回主程序前,也就是中断服务程序的第二条指令 往往是开中断指令,最后一

7、条是返回主程序指令IRET。,8086有256个中断类型号(设备号) (0255),7.3 8086中断系统,1.中断矢量(向量),中断矢量是中断处理子程序的入口地址,每个中断类型对应一个中断矢量。,在内存中,00000H 003FFH(1KB)区域内设置了一个中断矢量表,表里放的是中断服务程序的入口地址(矢量地址,内存的任何地方)。,入口地址占四个字节单元(2564=1024B),高字节放的是段地址(CS),低字节放的是偏移地址(IP)。每个中断源对应一个中断服务程序,每一个中断服务程序都有固定的入口地址,当中断源发出申请时,先将中断类型号送给CPU,CPU将中断类型号N4得到入口地址的矢量

8、表地址,按表地址取出入口地址开始执行中断服务程序。,物理入口地址=CS16+IP,例:INT 5 54=20 =14H,构成00014H ,它就是5号功能调用的表的入口地址。,例:键盘中断的矢量号为09H,它的中断服务程序入口地址为0BA9H:0125H。键盘中断对应的中断矢量表位于0000:0024H(09H4=24H)开始的4单元。这4个单元的内容如下:,8086/8088的256个中断源,内部中断,它是由CPU内部的标志或执行一条启动中断指令而引起的内部中断;,外部中断,它是由外界中断请求输入信号引起的外部中断。,有些中断矢量号被用于系统的功能调用,被DOS和BIOS占用,用户不可侵占。

9、,内部中断又称为软件中断,分为专用中断和指令中 断两部分 。CPU在运行过程中出现异常自动产生的中 断处理过程(不受IF控制)。,2.内部中断,1).专用中断 在中断矢量表中,矢量号04中除矢量号2的NMI非屏蔽中断外,其余均为专用的软件中断,通常是由某个标志位引起的中断。,(1) 0号中断,除法出错中断,”自陷“中断,(2)1号中断,当将CPU内标志寄存器的陷阱标志TF位置1后, CPU每执行完一条指令,会产生1号矢量中断。,调试程序的单步操作手段,单步中断或陷阱中断,(3)3号中断,3号中断和单步中断一样,也是8086提供的一种调试 手段。它用于设置程序中的断点,故称为断点中断,用 INT

10、或INT 3指令表示。,(4)4号中断,当CPU内部溢出标志位OF被置1,执行溢出中断指 令INTO后,会产生4号中断。,INTO指令通常安排在算术指令之后,以便在运算过 程中,一旦产生溢出错误能及时进行处理。,2). 指令中断INT n,INT n主要是用于系统定义或用户自定义的软件中断。CPU执行INT n指令,产生矢量地址号为n的中断,称为n号矢量中断。,对于BIOS功能调用和DOS功能调用这些系统定义的指令中断,在系统引导时就完成了装配,使用者主要遵从调用的格式,预置所需要的入口参数,直接用INT n指令完成调用;而用户自定义的软件中断调用,除了设计好中断服务程序外,还得把中断入口地址

11、预置到中断矢量表中,在需要调用时,应用INT n指令实现。,内部中断的特点:,(1)中断矢量号是由CPU内部自动提供,不需要执 行中断响应总线周期去读取矢量号;,(2)除单步中断外,所有内部中断都不可以用软件 屏蔽(即都不能通过执行CLI指令使IF清0来禁止对它 们的响应)。,(3)从中断响应的优先顺序上,除单步中断外,所有内部中断的优先级别均高于外部中断。,(4)软中断已失掉了随机性,硬中断是由外部发来的请求,它何时发来请求是完全随机的,无法事先约定。而软中断是事先安排在程序中的中断指令引起的。,3.外部中断,NMI和INTR 输入外部中断源产生的中断请求接口上 产生的中断申请信号(硬中断)

12、。,NMI:由于紧急事件而产生的中断申请,申请信号不能用指令屏蔽。一旦产生申请,CPU执行完当前指令后,无条件响应。中断服务程序的入口地址应该存放在中断矢量表的0008H000BH单元中。中断矢量号2,由芯片内部决定,CPU不需要执行中断响应的总线周期去读取矢量码。,1). 非屏蔽中断NMI,在NMI线上的请求信号采用边沿触发方式,当CPU 采样到NMI有请求时,在内部把它锁存起来,并自动 提供中断矢量号02,然后按以下顺序处理:, 将矢量号乘以4,得到中断矢量地址0008H;, 把CPU的标志寄存器内容压入堆栈,保护各标志 位状态;, 清除IF和TF标志,屏蔽INTR中断和单步中断;, 保存

13、断点,即把断点处的IP和CS内容压入堆栈 (先压CS,再压入IP);, 从中断矢量表中取中断服务程序的入口地址,分 别送至CS和IP中;, 按CS和IP的地址执行NMI中断服务程序;, 当执行到中断返回指令IRET,则恢复断点处的 IP、CS值,恢复标志寄存器内容,于是CPU就返回到 中断断点处继续执行原来的程序。,非屏蔽中断常用来处理系统出现的重大故障或紧急 情况,如系统掉电处理、紧急停机处理等。,2). 可屏蔽中断INTR,可屏蔽中断是指CPU对中断请求信号可以实施控制(屏蔽),可以通过中断控制指令来实现。8086的INTR中断请求信号来自于中断控制器8259A,是电平 触发方式,高电平有

14、效。,INTR信号有效时,如果CPU的IF=1,则CPU就在当前指令执行完毕后,响应INTR线上的中断请求(所以要求INTR线上的请求信号必须保持到当前指令的结束)。CPU响应INTR中断,则进入两个连续的中断响应总线周期(之间用23个空闲状态隔开)来获得中断矢量号。,CPU在第一个总线周期发出一个负脉冲的 信号,让外部中断系统把中断矢量号送到数据总线上 (一般是低8位)。信号,通知请求中断的外部系统 (8259A)准备好中断矢量号;第二个总线周期再发 一个 让外部中断系统把中断矢量号送到数据总线上(一般是低8位)。,CPU在T4状态的前沿采样数据总线,获得中断矢 量号。获得中断矢量号后,CP

15、U就进入中断处理过程。 所以,当一个可屏蔽中断被响应时,CPU实际上要执 行7个总线周期 :, 执行第二个 总线周期,从外部中断系统获取中断矢量号,并将它左移两位(即乘以4),形成中断失量地址,存入暂存器;, 执行一个总线写周期,把标志寄存器FR内 容压入堆栈,同时关中断(IF=0)和单步标志(TF=0);, 执行一个总线读周期,从中断矢量表中读取中断失量的段基址,送给CS。, 执行一个总线写周期,把CS内容压入堆栈;, 执行一个总线写周期,把当前IP内容压栈;, 执行一个总线读周期,从中断矢量表中读取中断 失 量的偏移址,送给IP;,对于NMI非屏蔽中断,因为它的中断矢量号是固定的,不需要从

16、外部中断系统获得,所以CPU在响应时只要执行5个总线周期,不需要第、第两步,而仅仅从第步开始顺序执行到第步。,中断矢量表设置在RAM低位存储区(0003FFH)内。它并不常驻内存,每次开机启动后,在系统正式工作前都必须对其进行初始化,即将相应的中断服务程序入口地址装入中断矢量表中。PC系列各机型启动过程中,首先由ROM BIOS自测试代码对ROM BIOS控制的中断矢量进行初始化装入。对于8086/8088系统装入01FH共32个中断矢量,对于80286以上CPU系统装入077H共120个中断矢量。若用户开发的应用程序采用INT N形式调用,则要将中断服务程序入口地址提前存入中断矢量表中所选定的单元中。,4 .中断矢量表初始化,1). 用串指令,串指令STOSW将AX寄存器中的内容写入附加段的 DI所指向的目标偏移地址单元中,只要将ES设定为0, DI中设定为n4,使用STOSW指令即可完成中断服 务程序首地址的装入。,. CLI ;关中断 MOV AX ,0 MOV ES , AX ;置附加段基地址为0 MOW DI , n4 ;置附加段偏移地

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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