微型计算机原理及接口技术 教学课件 ppt 作者 林志贵 第8章 86序列微型计算机的中断系统

上传人:E**** 文档编号:89508815 上传时间:2019-05-26 格式:PPT 页数:71 大小:955.50KB
返回 下载 相关 举报
微型计算机原理及接口技术 教学课件 ppt 作者 林志贵 第8章 86序列微型计算机的中断系统_第1页
第1页 / 共71页
微型计算机原理及接口技术 教学课件 ppt 作者 林志贵 第8章 86序列微型计算机的中断系统_第2页
第2页 / 共71页
微型计算机原理及接口技术 教学课件 ppt 作者 林志贵 第8章 86序列微型计算机的中断系统_第3页
第3页 / 共71页
微型计算机原理及接口技术 教学课件 ppt 作者 林志贵 第8章 86序列微型计算机的中断系统_第4页
第4页 / 共71页
微型计算机原理及接口技术 教学课件 ppt 作者 林志贵 第8章 86序列微型计算机的中断系统_第5页
第5页 / 共71页
点击查看更多>>
资源描述

《微型计算机原理及接口技术 教学课件 ppt 作者 林志贵 第8章 86序列微型计算机的中断系统》由会员分享,可在线阅读,更多相关《微型计算机原理及接口技术 教学课件 ppt 作者 林志贵 第8章 86序列微型计算机的中断系统(71页珍藏版)》请在金锄头文库上搜索。

1、第 8 章 86系列微型计算机的中断系统,本章主要内容,8.1 中断的基本概念 8.2 中断的处理 8.3 8086/8088中断系统 8.4 可编程中断控制器8259A,8.1.1 中断的定义和作用,8.1 中断的基本概述,定义:指当CPU正在处理某件事情的时候,突然发生的某一外部事件(如一个电平的变化,一个脉冲沿的发生或定时器的计数溢出等)请求CPU迅速去处理,此时若条件允许,CPU暂时停止当前的工作,转去处理所发生的事情。处理完该事件以后,再回到原来被终止的地方(断点),继续原来的工作,这样一个完整的过程称为中断,实现中断功能的部件称为中断系统。,8.1.1 中断的定义和作用,产生中断的

2、事件源称为中断源。,外部设备中断源 控制对象中断源 故障中断源 定时脉冲中断源,中断系统功能: 实现中断响应、中断服务及中断返回 实现中断优先权排队 实现中断嵌套,作用:提高CPU的工作效率 提高实时数据的处理时效 可以实现多任务多用户管理,中断过程: 中断申请 中断响应 中断处理 中断返回,8.1.1 中断的定义和作用,CPU响应中断的条件: (1)CPU开放中断,即CPU工作于中断方式 (2)目前申请中断的优先级别最高 (3)当前没有发生复位(RESET)、保持(HOLD)和非屏蔽中断请求(NMI)。 (4)若中断请求同时满足条件13,CPU并不立即响应,而只有等到CPU将当前指令运行结束

3、后,才能响应中断。 (5)若当前执行的指令是开中断指令(STI)和中断返回指令(IRET),则他们执行完后再执行一条指令,CPU才能响应INTR请求。,8.1.2 中断响应,8.1 中断的基本概述,在响应过程中,中断系统将自动完成以下几件事: (1)关中断。 (2)保存断点。 (3)形成中断入口地址。,8.1.2 中断响应,关闭中断的原因:一是对于电平触发的中断,当CPU响应中断后,如果不关中断,则本次中断有可能会触发新的中断;其次中断是CPU从正在执行的主程序转向执行中断服务程序,执行完毕后再回到主程序的过程,所以CPU响应中断后,要保护断点和保护现场,在这个过程中,是不允许被其他外设的中断

4、请求打断的。,问题: 1)当多个中断源同时向CPU发出中断请求的情况。这时,CPU首先响应哪一个中断请求并执行其中断服务程序 ? 2)当CPU已在中断处理状态时,如果另一个外设又发出了中断请求信号,这时CPU是否中断当前的中断处理程序而接受更需要紧急处理的中断 ?,8.1.3 中断的优先级,8.1 中断的基本概述,中断的优先权,中断优先级分配方法: 软件方案 硬件方案 软硬件结合方案,8.1.3 中断的优先级,1. 软件方案,中断优先权由查询顺序决定,先查询的中断源具有高的优先权,链形电路:利用外设在系统中的物理位置来决定其中断优先权的,8.1.3 中断的优先级,2. 硬件方案,编码电路,8.

5、1.3 中断的优先级,特点:逻辑简单,编程方便,但是优先级一旦固定很难改变。,通过可编程中断控制器(如8259A)实现对中断优先级的管理。,8.1.3 中断的优先级,2. 软硬件结合方案,特点:具有硬件方案的逻辑简单、响应中断快速等优点,又可以通过软件控制命令字和操作命令字对中断优先级进行灵活设置。,8.1.4 中断嵌套,8.1 中断的基本概述,在某一时刻,CPU正在执行某个中断服务程序时,若CPU的中断是开放的,如果有级别更高的中断源请求中断时,CPU可以把正在执行的中断服务程序暂停下来而响应和处理中断优先权更高中断源的中断请求,等到处理完后,再返回原来中断服务程序的断点处继续执行,条件:

6、CPU开中断 有级别更高的中断源请求,一旦CPU响应中断,就可转入中断服务程序之中,中断服务程序的一般结构如下:,8.2 中断的处理,PUSH AX ;保护现场 PUSH BX STI ;开中断 ;中断处理 CLI ;关中断 POP BX ;恢复现场 . POP AX ; STI ;开中断 IRET ;中断返回,(1)保护现场 对象:一些寄存器 这些寄存器在主程序和中断服务程序都使用。 由用户保护寄存器的这段程序称为保护现场,实质上是执行PUSH指令将需要保护的寄存器内容推入堆栈。,8.2 中断的处理,(2)开中断 CPU接收并响应一个中断后自动关闭中断。 如何要实现中断嵌套,需要开中断。,(

7、3)中断服务 中断服务程序的核心就是对某些情况进行处理,如传输数据、处理掉电紧急保护和各种报警状态等。,(4)关中断 呼应前面开中断,以便下面的恢复现场的工作顺利而不被打断。,8.2 中断的处理,(5)恢复现场 在返回主程序前要将用户保护的寄存器内容从堆栈中弹出,以便返回主程序后继续正确执行主程序。,(6)开中断并返回 此处的开中断对应CPU响应中断后自动关闭中断。在返回主程序前,也就是中断服务程序的第二条指令往往是开中断指令。,8.3 8086/8088中断系统,中断特点: 矢量型中断,有256个中断矢量号(设备号) (0255),中断分类,8.3 8086/8088中断系统,8.3.1 中

8、断矢量和中断矢量表,8.3 8086/8088中断系统,中断矢量:是中断处理子程序的入口地址,每个中断 类型对应一个中断矢量,中断矢量表:在内存中,开辟一个区域存放中断服务程序的入口地址的表。对于8086,这个区域的首地址00000H(固定),问题:已知中断矢量号代码,怎样找到中断服务程序的入口地址?,8.3.1 中断矢量和中断矢量表,8.3.1 中断矢量和中断矢量表,中断矢量表范围: 00000H 003FFH(1KB) 每一个中断服务程序的入口地址占四个字节单元(2564=1024B),高字节放的是段地址(CS),低字节放的是偏移地址(IP) 每个中断源对应一个中断服务程序,每一个中断服务

9、程序都有固定的入口地址,8.3.1 中断矢量和中断矢量表,例8-1: 键盘中断的矢量号为09H,它的中断服务程序入口地址为0BA9H:0125H,求它在中断矢量表中的地址及相应单元内容,解:键盘中断对应的中断矢量表位于0000:0024H (09H4=24H)开始的4单元 这4个单元的内容见表:,又称为软件中断,分为专用中断和指令中断两部分。,8.3.2 内部中断,8.3 8086/8088中断系统,1. 专用中断,(1) 0号中断 这是除法出错中断。在执行除法指令时,若发现除数为0或商超出了寄存器所能表示的范围(双字/字的范围为-32 768 +65 535;字/字节的范围为-128 +25

10、5)时,CPU会立即产生一个矢量号为00H的0型中断,转入相应的除法出错处理程序。 由于0号中断没有相应的中断指令,也不是由外部硬件引起的,通常称为“自陷”中断。,8.3.2 内部中断,(2) 1号中断 当将CPU内标志寄存器的陷阱标志TF位置1后,CPU每执行完一条指令,会产生1号矢量中断。 常被用来作为调试程序的单步操作手段,所以又称为单步中断或陷阱中断。,(3) 3号中断 CPU执行INT 3而产生的中断,此指令是单字节指令。3号中断和单步中断一样,也是8086提供的一种调试手段。 它用于设置程序中的断点,故称为断点中断,用INT或INT 3指令表示。,INT n指令的矢量号就是给定的n

11、。 INT n主要是用于系统定义或用户自定义的软件中断。 CPU执行INT n指令,产生矢量地址号为n的中断,称为n号矢量中断。,8.3.2 内部中断,(4) 4号中断 当CPU内部溢出标志位OF被置1,执行溢出中断指令INTO后,会产生4号中断。若标志OF为0,则此指令不起作用。 INTO指令为程序员提供了一种算术运算溢出时的处理手段。INTO指令通常安排在算术指令之后,以便在运算过程中,一旦产生溢出错误能及时进行处理。,2. 指令中断INT n,内部中断特点:,8.3.2 内部中断,中断矢量号由CPU内部自动提供,不需要执行中断响应总线周期去读取矢量号 除单步中断外,所有内部中断都不可以用

12、软件屏蔽,即都不能通过执行CLI指令使IF清0来禁止对它们的响应 除单步中断外,所有内部中断的优先级别均高于外部中断 软中断不具有随机性,8.3.3 外部中断,8.3 8086/8088中断系统,1. 非屏蔽中断,特点: 对NMI请求的响应不受中断标志位IF的控制 中断矢量号为2 NMI中断优先级别高于可屏蔽中断,相应过程: 将矢量号乘以4,得到中断矢量地址0008H; 把CPU的标志寄存器内容压入堆栈,保护各标志位状态; 清除IF和TF标志,屏蔽INTR中断和单步中断; 保存断点,即把断点处的IP和CS内容压入堆栈(先压CS,再压入IP); 从中断矢量表中取中断服务程序的入口地址,分别送至C

13、S和IP中; 按CS和IP的地址执行NMI中断服务程序; 当执行到中断返回指令IRET,则恢复断点处的IP、CS值,恢复标志寄存器内容,于是CPU就返回到中断断点处继续执行原来的程序。,8.3.3 外部中断,用途:用于处理系统的重大故障,如掉电事故,8.3.3 外部中断,2. 可屏蔽中断,特点: 对INTR请求的响应受中断标志位IF的控制 中断矢量号为不固定, 中断优先级及屏蔽状态有中断控制器8259A控制 中断响应需要两个总线周期,8.3.3 外部中断,8.3.3 外部中断,CPU响应外部中断、并进入中断子程序的过程中,要依次做几件事:,(1)从数据总线上读取中断矢量号,将其存入内部暂存器

14、(2)将标志寄存器FR的值进栈 (3)把FR的中断允许标志IF和单步标志TF清零 (4)将断点保护到堆栈中 断点:是指响应中断时,主程序中当前指令下面的一条指令的地址,包括CS和IP的值 (5)依据获得的中断矢量号,到内存中断矢量表中找到中断矢量,再依据该中断矢量转入相应的中断服务程序,8.3.4 中断矢量表的初始化,8.3 8086/8088中断系统,中断矢量表并不常驻内存,原因,PC系列各机型启动过程中,首先由ROM BIOS自测试代码对ROM BIOS控制的中断矢量进行初始化装入 8086/8088系统:装入01FH共32个中断矢量 80286以上CPU系统:装入077H共120个中断矢

15、量 若用户开发的应用程序采用INT N形式调用,则要将中断服务程序入口地址提前存入中断矢量表中所选定的单元中,方法: 用串指令 用DOS系统功能调用 直接装入法,8.3.4 中断矢量表的初始化,1. 用串指令,串指令STOSW将AX寄存器中的内容写入附加段的DI所指向的目标偏移地址单元中,只要将ES设定为0,DI中设定为n4,使用STOSW指令即可完成中断服务程序首地址的装入。, CLI ;关中断 MOV AX ,0 MOV ES , AX ; 置附加段基地址为0 MOW DI , n4 ;置附加段偏移地址到DI MOV AX ,OFFSET INT_VCE ;置中断程序的首地址的偏移 ;量到

16、AX CLD STOSW MOV AX ,SEG INT_VCE ;置中断程序首地址的段基 ;地址到AX STOSW STI ;开中断 ,8.3.4 中断矢量表的初始化,利用软件中断指令“INT 21H”以及专门为更新中断服务程序地址的25H号功能来设置中断地址有两个非常显著的优点: DOS会采取措施用最安全可行的方法来存放中断矢量。 使用时,范围更广泛。,8.3.4 中断矢量表的初始化,2. 用DOS系统功能调用,使用25H功能时要求: AL中存放中断矢量号; DS中存放中断服务程序所在段的基地址; DX 中存放中断服务程序的首地址与其所在段的首地址之间的偏移量(偏移地址)。,例如,将中断矢量号为60H的中断地址置入。 PUSH DS MOV DX,SEG INT60H ;段地址送DS MOV DS, DX MOV DX,OFFSET INT60H ;偏移地址

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

当前位置:首页 > 高等教育 > 大学课件

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