中断及中断控制器本章学习要点中断技术概述8086的中断

合集下载

8086-6-中断

8086-6-中断

8086-6-中断中断(8086)中断就是打断处理器当前的执⾏流程,去执⾏⼀些和当前⼯作不相⼲的指令,执⾏完之后,还可以返回到原来的程序流程继续执⾏。

就好⽐你在打游戏突然⽼板来电话了,你不得不先停⽌打游戏然后来处理这件更为重要的事件,然后打完电话之后继续打游戏。

中断的⼀些概念:中断号:由于CPU需要通过对不同类型的中断进⾏不同处理,所以每种类型的中断都被统⼀编号,这称为中断类型号、中断向量或者中断号。

Intel处理器允许256 个中断,中断号的范围是0~255中断源:中断信号的来源,或者说产⽣中断的设备,被称为中断源。

中断嵌套:当⼀个中断事件正在处理时,如果来了⼀个优先级更⾼的中断事件时,允许暂时中⽌当前的中断处理,先为优先级较⾼的中断事件服务,这称为中断嵌套。

实模式下的中断向量表(Interrupt Vector Table,IVT):所谓中断处理,其实就是处理器要执⾏⼀段与该中断有关的程序(指令)你也可以将其当作⼀个函数。

处理器可以识别256 个中断,那么理论上就需要256 段代码。

这些代码实际存放的位置并不重要,重要的是,在实模式下,处理器要求将它们的⼊⼝点也就是起始地址集中存放到内存中从物理地址0x00000 开始,到0x003ff 结束,共1KB 的空间内,这就是所谓的中断向量表。

每个中断的⼊⼝点地址在中断向量表中占2 个字,分别是中断处理代码的偏移地址和段地址。

中断0的⼊⼝点位于物理地址0x00000 处,也就是逻辑地址0x0000:0x0000;中断1 的⼊⼝点位于物理地址0x00004 处,即逻辑地址0x0000:0x0004;其他中断⼊⼝点地址以此类推。

中断分类:中断⼤致上可以分为硬件中断和软件中断(简称为软中断)。

顾名思义,硬件中断由硬件来提供,⽐如说:CPU,⿏标键盘等。

⽽软件键盘由内部的代码来定义。

硬件中断:硬件中断还可以分为外部硬件中断和内部硬件中断,外部硬件中断是指除CPU以外的硬件对应的中断,⽽内部硬件中断是内部CPU对应的中断。

简述 8086 处理器的中断处理过程

简述 8086 处理器的中断处理过程

简述 8086 处理器的中断处理过程
8086处理器中断处理过程是用来处理外部引发的中断请求的一个过程。

当中断发生时,中断请求将引发中断向量(中断处理程序的程序入口地址)信号。

此向量会被传送到 CPU 的中断标志寄存器(IFR)中,IFR 会根据当前的中断优先级,将中断请求信号发送给 CPU ,以触发 CPU 的中断处理流程。

当中断请求信号触发处理器,处理器首先将当前的程序状态存储到堆栈中供以后恢复使用,然后根据中断向量从中断服务程序(ISR)中取出正确的处理程序。

此时处理器开始执行相应的 ISR,该程序将完成实际的中断处理程序,ISR 将根据外部事件对 CPU 和其他相关设备进行控制,例如改变 CPU 执行的指令,修改状态位,启动外设设备,等等。

完成中断处理程序后,处理器将恢复原来的程序状态,然后继续执行原来的程序,此时中断程序处理完毕,处理器继续执行程序继续完成任务。

- 1 -。

微机原理第7章 8086中断系统和中断控制器

微机原理第7章 8086中断系统和中断控制器

3)高级中断源能中断低级的中断处理
中断嵌套 当CPU正在响应某一中断源的请求,执行为其服务的中断服务程序时, 如果有优先级更高的中断源发出请求,CPU将中止正在执行的中断服务程 序而转入为新的中断源服务,等新的中断服务程序执行完后,再返回到被 1 中止的中断服务程序,这一过程称为中断嵌套。 • 中断嵌套可以有多级,具体级数原则上不限,只取决于堆栈深度。
外部中断 非屏蔽中断 可屏蔽中断
可屏蔽中断源
CPU 中断逻辑
INTR
8259A 中断 INTA 控制器
INT N 指令
INTO 指令
除法 错误
单步 中断
IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7
外 设 中 断 源
内部中断: 除法错中断 指令中断 溢出中断 单步中断
硬件(外部)中断 非屏蔽中断请求 INT 2 NMI(17号引脚) 中 断 逻 辑 可屏蔽中断请求 中断类型号32~255 INTR(18号引脚)
中断指令 INT n N=32~255
溢出中断 INTO INT 4
断点 中断 INT 3
单步中断 (TF=1) INT 1
除法 错误 INT 0
软件(内部)中断
8086/8088中断源
1.软件中断(内部中断) 8086/8088的软件中断主要有三类共五种。 (1) 处理运算过程中某些错误的中断 执行程序时,为及时处理运算中的某些错误 ,CPU以中断方式中止正在运行的程序,提醒程 序员改错。 ① 除法错中断(中断类型号为0)。在8086 /8088 CPU执行除法指令(DIV/IDIV)时,若发现 除数为0,或所得的商超过了CPU中有关寄存器所 能表示的最大值,则立即产生一个类型号为0的 内部中断,CPU转去执行除法错中断处理程序。

微机原理与接口 第7章_中断技术及8086中断系统

微机原理与接口 第7章_中断技术及8086中断系统

11
第7章 输入/输出与中断 2.中断优先级的确定 . 在微机系统中通常用三种方法来确定中断源的优先级别, 在微机系统中通常用三种方法来确定中断源的优先级别, 即 软件查询法、硬件排队电路法和专用中断控制芯片法。 软件查询法 、 硬件排队电路法和专用中断控制芯片法 。 本节简 要介绍前两种方法, 要介绍前两种方法 , 第三种方法将在本章的最后一节作详细介 绍。 1) 软件查询法 软件查询法需要简单的硬件电路支持。 个中断源为例, 软件查询法需要简单的硬件电路支持。以8个中断源为例, 个中断源为例 其硬件电路如图7.13所示,将8个外设的中断请求组合起来作为 所示, 其硬件电路如图 所示 个外设的中断请求组合起来作为 一个端口(中断寄存器 ,并将各个外设的中断请求信号相或, 一个端口 中断寄存器),并将各个外设的中断请求信号相或,产 中断寄存器 生一个总的INT信号。 信号。 生一个总的 信号
对n获关 关断中中
7 14 软 件 查 询 方 式 的 流 程 图
.

14
第7章 输入/输出与中断 对于图7.13所示电路,设中断寄存器端口号为n,则软件查询 所示电路,设中断寄存器端口号为 , 对于图 所示电路 的程序段如下: 的程序段如下: IN JNZ TEST JNZ AL,n , 号外设有请求? ;1号外设有请求 号外设有请求 ;有,转1号中断服务程序 号中断服务程序 号外设有请求? ;2号外设有请求 号外设有请求 ;有,转2号中断服务程序 号中断服务程序 II1 AL,40H , II2 TEST AL,80H ,
10
第7章 输入/输出与中断 (2) 低优先级中断正在处理,出现高优先级请求,应转去处理 低优先级中断正在处理,出现高优先级请求, 高优先级请求,服务结束后再返回原优先级较低的中断服务程 高优先级请求, 序继续执行。 序继续执行。 (3) 高优先级中断正在处理,出现低优先级请求,可暂不响应。 高优先级中断正在处理,出现低优先级请求,可暂不响应。 (4) 中断处理时,出现同级别请求,应在当前中断处理结束以 中断处理时,出现同级别请求, 后再处理新的请求。 后再处理新的请求。

第八章 中断系统解析资料

第八章 中断系统解析资料
来识别不同的中断源。中断源可硬件中断 ( 又称外部中断 ) ;另一
类来自 CPU 的内部,由执行指令时引起,称为软件中断 ( 又称内 部中断)。
8.2.1 外部中断
1. 非屏蔽中断NMI(中断类型号为2) 整个系统只有一个非屏蔽中断,它不受IF标志位的屏蔽。 出现在NMI上的请求信号是上升沿触发的,一旦出现,CPU将 予以响应。非屏蔽中断一般用于紧急故障处理。
8位寄存器,记录当前正在被服务的所有中断级,包括尚
未服务完而中途被更高优先级打断的中断级。每位对应输入端 IR7~IR0中的一位。若某个引脚上的中断请求被响应,则ISR中
对应位被置1。ISR的置位也允许嵌套。
8.4.2 8259A的内部结构及外部引脚
8.4
可编程中断控制器 8259A
8259A具有如下功能:
① 以接收多个外部中断源的中断请求,并进行优先级别判 断,选中当前优先级别最高的中断请求,再将此请求送到微 处理器的中断输入端。 ② 具有提供中断向量、 屏蔽中断输入等功能。 ③ 可用于管理8级优先权中断,最多构成64级优先权中断管 理系统。中断服务程序入口地址构成的中断向量表存放在内 存固定区域。 ④ 有多种工作方式,自动提供中断服务程序 入口地址
通过命令在程序中任意指定断点地址,当CPU执行到断点时便
产生中断,同时显示当前各寄存器的内容和标志位的值以及下 一条要执行的指令,供用户检查在断点以前的程序运行是否正
常。
8.2.2 内部中断
(4)溢出中断INTO(类型号为04H) CPU进行带符号数的算术运算时,若发生了溢出,则标志位 OF=1,如果此时执行INTO指令,会产生溢出中断。若OF=0,则 INTO不产生中断,CPU继续执行下一条指令。INTO指令通常安排 在算术指令之后,以便在溢出时能及时处理。 (5)指令中断 CPU执行INT n指令后,会立即产生一个类型码为n的中断,

《微机原理与接口技术》第八章中断基础知识

《微机原理与接口技术》第八章中断基础知识

8.1 中断原理
一、从无条件传送、条件传送到中断传送
条件传送最大的缺点就是为了CPU和外设在 时间上配合正确,CPU花大量的时间用无条件 方式对状态线进行查询,从而降低了整个系统 的工作效率。 具有中断功能的CPU中,有一个硬件部件专 门用于检测外设的状态线。
检测状态信号
主 程 序
状态信号有效?
存储器出错检测电路
存储器 奇偶 位
奇偶检测电路
中断请求信号
2、分时操作,同时处理 有了中断功能,CPU可命令多个外 设同时工作。虽然CPU在不同的时间 点上为不同的任务工作,但宏观上 看CPU几乎同时为不同的任务工作, 极大地发挥了CPU高速性的特点。
8.2 中断系统组成及其功能
一、
三个与中断有关的触发器 1、中断请求触发器 有两个特点: (1)它的输出可以作为中断请求信号,在满足一 定条件的情况下把信号发送给CPU,并在CPU未响 应时一直保存下去; (2)、当CPU满足一定条件下响应了该中断请求 信号,执行了相关的操作后,该中断请求信号可 以被撤除。
IF=0 IP,CS,FR进栈 IP=[2*4+0] CS=[2*4+2] 0000:4*2+0 0000:4*2+1 0000:4*2+2 0000:4*2+3
内存 00 10 00 20 IP 1000 2000 CS
三、 可屏蔽中断 可屏蔽中断就是用户可以控制的中断, 其途径是通过对CPU内的中断允许触发器 IF的设置来禁止和允许CPU响应中断。可 屏蔽中断由8086CPU的INTR管脚引入。这 种中断请求需要设备提供中断类型号, CPU 响应中断后,取中断类型号的 4 倍作 为中断服务入口地址表的地址,通过查 表得到相应的中断服务程序首地址,转 去执行相应的中断服务程序。

微机原理与接口技术(8)_中断控制

微机原理与接口技术(8)_中断控制

▼ 上升沿触发申请中断
▼ 不受中断允许标志IF的控制与影响(即不可屏 蔽),一旦NMI引脚出现中断请求,CPU在当前指令 执行完后,必须立即响应。
▼ 由计算机内部硬件出错而引发,一般用于处理紧 急事件。
PC机中用于内存奇偶校验出错和系统主要故 障(如电源断电等)。
②可屏蔽中断( INTR中断) ▼ 外设申请的中断 ▼ 电平触发 ▼ 受中断允许标志IF控制 IF = 1 (指令STI),开中断,允许响应INTR中断 IF = 0 ( 指令CLI ) ,关中断,禁止响应INTR中断
每个中断源都有一个与它相对应的中断类型码(赋予 中断源的编号编号从0~255 ),CPU以中断类型码来识别不 同的中断源。
2、8086中断源分类 8086的中断源可分为两类:外部中断和内部中断
外部中断:外部硬件设备引起的中断,又称硬件中断。
内部中断:CPU执行软中断指令,或在程序运行过程中 出现错误等异常情况而产生的中断,又称异常中断。
5、开中断/关中断
开中断就是允许中断,允许触发事打断。 关中断即不允许中断,不允许触发事件打断CPU正在执行正常 的程序。
6、可屏蔽中断 /不可屏蔽中断
对8086CPU,可通过使FR的IF=0来使加在INTR引脚上的触发信 号不能打断CPU正在正常执行的程序。IF把INTR引脚上的触发信 号好象屏蔽一样,可用IF=0屏蔽掉的中断就称为可屏蔽中断。 对8086CPU,不能用IF=0来屏蔽的中断,称为非屏蔽中断。
内部中断
软件中断 INT n 溢出中断 除法错中断 断点中断 单步中断 n 4 2
外部中断
NMI 不可屏蔽中断 IR0 IR1 中断控 IR2 IR3 制器 INTR IR4 8259A IR5 IR6 PIC IR7

8086中断系统讲解

8086中断系统讲解

中断响应总线周期
中断响应过程的总线操作
• 第1个总线周期,通知外设,CPU准备响 应中断; • 第2个总线周期,外设发送中断类型码; • 总线写周期,标志寄存器入栈; • 总线写周期,CS内容入栈; • 总线写周期,IP内容入栈; • 总线读周期,偏移量送IP; • 总线读周期,段地址送CS;
5. 中断处理子程序
① ② ③ ④ ⑤ 进一步保护中断现场 开放中断 中断处理的具体内容 弹出堆栈指令(恢复保护的现场) 中断返回指令(自动返回F、CS、IP)
6. 软件中断
① 用一条指进入中断处理子程序,并 且,中断类型码由指令提供。 ② 不执行中断响应总线周期,也不从数 据总线读取中断类型码。 ③ 不受中断允许标志IF的影响 ④ 执行过程中可响应外部硬件中断 ⑤ 软件中断没有随机性
2. 中断向量和中断向量表
例:
• 中断类型号20H, 其中断程序入口地址为 2000H:1000H, 问:中断向量是什么?应存 放在什么位置,内容是什么?
3. 硬件中断
1. NMI:
a. 优先级别:级别较高;
b. 用于十分紧急的情况处理,如系统掉电 i. 将当前现场保存在非易失性存储器中; ii. 启动热备份设备; iii. 启动一定的线路接通一个可充电的电源 系统,以维持系统正常工作。
– 上升沿,维持两个时钟周期的高电平
• NMI的响应过程
几点说明:
1. 非屏蔽中断和可屏蔽中断有两点差别; 2. TF是单步中断标志 ; 3. 在中断响应后,又遇NMI; 4. 结束时,返回断点; 5. 不能立即响应中断的情况:
a. 遇到LOCK命令; b. 执行往段寄存器中传送数据的指令;
6. 等待或串操作时,允许过程中进入中断

中断及中断控制器本章学习要点中断技术概述8086的中断

中断及中断控制器本章学习要点中断技术概述8086的中断

第7章中断及中断控制器本章学习要点●中断技术概述、8086的中断类型●中断优先权及其管理、中断矢量●中断处理过程●可编程中断控制器8259A及其应用7-1 本章知识重点7-1-1 中断技术的基本概念1.中断的概念所谓“中断”是指CPU在正常执行程序时,由于内部/外部事件或程序的预先安排引起CPU暂时终止执行现行程序,转而去执行请求CPU为其服务的服务程序,待该服务程序执行完毕,又能自动返回到被中断的程序继续执行。

2.中断源能引起中断的外部设备或内部原因称为中断源。

按照与CPU的位置关系可分为内部中断和外部中断。

内部中断是CPU在处理某些特殊事件时所引起或通过内部逻辑电路自己去调用的中断。

外部中断是由于外部设备要求数据输入/输出操作时请求CPU为之服务的一种中断。

通常中断源有以下几种:(1)一般的输入/输出设备,如键盘、打印机等。

(2)实时时钟。

(3)故障源。

(4)软件中断。

3.中断源识别识别中断源通常有两种方法:查询中断和矢量中断。

(1)查询中断:就是用软件查询的方法确定中断源。

当CPU收到中断请求信号时,通过执行一段查询程序,从多个可能的外设中查询申请中断的外设。

(2)矢量中断:又称向量中断。

每个中断源预先指定一个矢量标志,要求外设在提出中断请求的同时,提供该中断矢量标志。

当CPU响应某个中断源的中断请求时,控制逻辑就将该中断源的矢量标志送入CPU,CPU根据矢量标志自动找到相应的中断服务程序入口地址,转入中断服务。

这种中断源识别方法比查询中断要快很多。

4.中断技术的优点(1)同步操作:中断方式不仅可以实现CPU和外设之问的并行工作,而且CPU可命令多个外设同时工作,这大大提高r CPU的利用率,也加快了输A./输出的速度。

(2)实现实时处理:利用中断技术可以及时处理随机输入到微型计算机的各种参数和信息,使微型计算机具备实时处理与控制的能力。

(3)故障处理:CPU可以就根据故障源发出的中断请求,立即去执行相应的故障处理程序,自行处理故障而不必停机,因此提高了微型计算机工作的可靠性。

第五章8086的中断系统

第五章8086的中断系统

ASSUME CS: CODE , DS: DATA , SS: STACK
START:
MOV AX , DATA ; 建立数据段址
MOV DS , AX
MOV AL , N
; N为指定中断号

MOV AH , 35H
; 获取中断向量
INT 21H
MOV INT_SEG , ES ;保存中断向量段址
MOV AL , N
; type N
MOV AH , 25H
; set interrupt vector
INT 21H
POP DX POP DS MOV AL , N MOV AH , 25H INT 21H RET ; INTHAND:
IRET
; restore the old offset ; and base of interrupt ; type N ; set interrupt vector
35H功能:取中断向量 把由AL指定的中断类型的中断向量从中断 向量表中取到ES: BX中。
预置:
AH = 35H
AL = 中断类型号
执行:
INT 21H
返回时送: ES: BX = 中断向量
例5.4 使用DOS功能调用存取中断向量。
MOV AL , N
; type N interrupt
MOV AH , 35
CPU取出INT 21H指令后, CS: IP等于下一 指令(标号NEXT:)存放单元的物理地址。
CPU执行INT 21H之后: ① FAGS、CS、IP的当前值被压栈保护。 ② CPU从4×21H~4×21H+3的单元中取得
中断向量并写入IP, CS之中。 ③ CPU根据CS: IP值转向21H型中断服务程

第七章8086中断系统与中断控制器

第七章8086中断系统与中断控制器


非屏蔽中断(类型2) ,由引脚NMI进入,不受IF的限 制,一个系统只能有一个非屏蔽中断,其优先级高于 可屏蔽中断 专用中断:类型0,类型1,类型3,类型4 指令引发的:INT n
(2)内部中断(软件)

(3)中断的优先权 中断优先权 高 低 软件中断 ( 除零,INT 指令,INTO指令 )
6、IMR:中断屏蔽寄存器(8位) 用于存放从CPU来的屏蔽字,每一位与IR0~IR7相对应, 中断请求是否被响应,决定于中断屏蔽寄存器中相应位 的值 =1,被屏蔽 =0,被允许 7、优先级判别电路(PR) 用于确定新进入的中断请求是否比正在处理的中断请求 的优先级高。 8、ISR:当前中断服务寄存器(8位) 用于存放所有正在被处理的中断请求,每一位与 IR0~IR7相对应,哪一位上的中断请求被响应,当前中断 服务寄存器中的哪一位被置1。
中断源 能够引发中断的事件都称为中断源。 可分为硬件中 断源和软件中断源两类: 硬件中断源(外部中断): (1)外设: 如键盘、显示器和打印机等; (2)时钟电路: 如定时器/计数器; (3)故障源: 如掉电保护、内存错误等; 软件中断源(内部中断): (1)CPU内部事件:除法错、溢出错、单步/断点 运行; (2)软中断指令:INT 21H
CPU在得到中断类型号就可以执行中断服务程序,具体做以 下几个工作: ①执行两个中断响应周期,中断类型号×4=中断向量地 址。 ②CPU自动保护状态标志寄存器的值。 ③清IF和TF。 ④CPU保护断点,即下一条指令的地址,包括CS和IP。 ⑤查中断向量表,开始执行中断服务程序。 ⑥中断服务程序中:保护现场,开中断,进行中断服务, 恢复现场,中断结束,中断返回。
专用硬件方式 采用专门的中断控制器(8259)来解决优先级问题, 这是一种软、硬件结合的方式。

8086汇编语言学习(十)8086中断

8086汇编语言学习(十)8086中断

8086汇编语⾔学习(⼗)8086中断8086中断介绍 任何⼀种CPU,都具备⼀种能⼒,可以在执⾏完当前正在执⾏的指令之后,检测到来⾃CPU内部或外部产⽣的特殊通知信息,并⽴即对所接收到的信息做出相应的处理。

这类特殊的信息,被称作中断信息。

顾名思义,中断指的是CPU不去正常执⾏接下来的指令,⽽是被中断,转⽽处理中断信息。

中断信息的种类有很多,但却有着⼀些共同点,中断信息中都包含了中断信息的类型码,⽤于标识中断信息。

8086的中断类型码是8位的,这代表着8086CPU最多可以处理256种不同的中断信息。

中断处理程序 CPU接受到了中断信息后,需要进⾏相应的处理,处理逻辑依然是由开发⼈员编写程序来控制的,所编写的程序被称作中断处理程序。

⼀般来说,需要编写不同的中断处理程序以应对不同的中断信息。

要令CPU中⽌当前指令的执⾏,转⽽跳转执⾏中断处理程序,其原理依然是通过改变8086CPU中CS:IP的值,使之指向中断信息对应的中断处理程序。

想要CPU令处理不同的中断信息时跳转到对应的中断处理程序,则必须要有⼀种机制将中断信息和中断处理程序建⽴关联。

中断向量表 8086CPU的设计者提供了⼀种叫做中断向量表的结构,⽤于建⽴中断类型码和中断处理程序⼊⼝的关联关系。

中断向量表,就是中断程序⼊⼝地址的⼀个列表,被保存在指定的内存地址中,便于CPU读取。

每⼀个中断向量列表项(即中断处理程序⼊⼝地址)是32位的,占两个字的空间,其中⾼16位存放段地址,低16为存放偏移地址。

中断向量表在8086CPU中的位置是固定的,位于0000:0000~0000:03ff这⼀特殊内存空间中(CPU会固定的到约定的内存处获取数据)。

CPU在跳转中断处理程序时,以中断类型码*4+2字单元中的数据设置CS,中断类型码*4字单元中的数据设置IP,如此⼀来,便能正确的跳转对应的中断处理程序。

中断处理过程 虽然已经说明了CPU是如何根据中断信息中的类型码跳转执⾏指定的中断处理程序。

第七章中断及中断控制器

第七章中断及中断控制器

第七章中断及中断控制器【回顾】微机系统主机与外部设备之间的数据传送控制方式,中断的概念及处理过程。

【本讲重点】8086中断系统;中断控制器Intel8259A的性能概述,内、外部结构,工作过程,工作方式等。

【讲授内容】7. 1中断的概念及处理过程一、中断的基本概念1、中断从查询式的传输过程可以看出,它的优点是硬件开销小,使用起来比较简单。

但在此方式下,CPU要不断地查询外设的状态,当外设未准备好时,CPU就只能循环等待,不能执行其它程序,这样就浪费了CPU的大量时间,降低了主机的利用率。

为了解决这个矛盾,我们提出了中断传送方式,即当CPU进行主程序操作时,外设的数据已存入输入端口的数据寄存器;或端口的数据输出寄存器已空,由外设通过接口电路向CPU发出中断请求信号,CPU在满足一定的条件下,暂停执行当前正在执行的主程序,转入执行相应能够进行输入/输出操作的子程序,待输入/输出操作执行完毕之后CPU即返回继续执行原来被中断的主程序。

这样CPU就避免了把大量时间耗费在等待、查询状态信号的操作上,使其工作效率得以大大地提高。

能够向CPU发出中断请求的设备或事件称为中断源。

微机系统引入中断机制后,使CPU与外设(甚至多个外设)处于并行工作状态,便于实现信息的实时处理和系统的故障处理。

中断方式的原理示意图如图7-1所示。

图7-1 中断方式的原理2、中断请求信号的产生中断方式提高了CPU的工作效率,但是它同时也提高了系统的硬件开销。

因为系统需增加含有中断功能接口电路,用来产生中断请求信号。

以输入方式为例,接口电路如图7-2所示。

图7-2 中断请求信号的产生数据输入的过程当外设发STB→数据入锁存器,中断请求触发器置1→若没有屏蔽则产生INTR→CPU满足条件(允许中断;指令执行完)发INTA→(进入中断服务子程序)读数据,发RD,和地址→清中断请求触发器,数据送D0~D7。

(输出过程请自己思考)3、中断优先级当系统中有多个设备提出中断请求时,就有一个该响应谁的问题,也就是一个优先级的问题,解决优先级的问题一般可有三种方法:软件查询法、简单硬件方法及专用硬件方法。

微型计算机基本原理与应用第9章 中断及中断控制器

微型计算机基本原理与应用第9章 中断及中断控制器

图9.6 中断向量的存放格式
0000:009FH
87H 65H
43H 21H
0000:009CH




由于中断向量在中断向量表中是按中断类型码(也称中 断向量号)顺序存放的,所以每个中断向量的地址可由 中断类型码乘以4计算出来。 CPU响应中断时,只要把中断类型码N左移2位(乘以 4),即可得到中断向量在中断向量表中的对应地址 4N(该中断向量所占4个字节单元的第一个字节单元的地 址 )。 然后把由此地址开始的两个低字节单元的内容装入IP寄 存器: IP ← (4N, 4N+1) 再把两个高字节单元的内容装入 CS 寄存器: CS ←(4N+2, 4N+3)


这就是使程序转入中断类型码为N的中断服务程序的 控制过程,如下面例9.1所示。 至于中断类型码N的来源,对于不同的中断类型(内 部中断、外部中断),情况有所不同,详见后述。
例9.1 若中断类型码为3,则由中断类型码取得中断服务 程序入口地址的过程如图9.7所示。
图9.7 根据中断类型码取得中断服务程序入口地址

图9.1 软件查询接口电路
INTR
电 源 故 障
磁 盘
磁 带
纸 CRT 带 显示 输 入
保 留
键 盘 输 入
打 印 输 出
当CPU响应中断请求进入中断处理程序后,必须在中
断处理程序的开始部分安排一段带优先级的查询程序, 查询的先后顺序就体现了不同设备的中断优先级,即 先查的设备具有较高的优先级,后查的设备具有较低 的优先级。 一般来说总是先查速度较快或是实时性较高的设备。 软件查询的流程如图9.2所示。

图9. 2 软件查询流程图

第7章8086中断系统与中断控制器

第7章8086中断系统与中断控制器

No 最后一个总线周期的最后一个T状态?
No
Yes
有INTR?
Yes
中断开放? (FR中的IF=1?)
Yes
关中断CLI (置FR中IF=0) 发INTA信号
断点地址(IP. CS)入栈 FR 入栈
转入相应中断服务程序 保护现场
中断服务处理
恢复现场
图7.8 8086CPU 响应 开中断STI (置FR中IF=1)
利用专用的可编程中断控制器管理中断优先 级,又称专用芯片中断管理方式。典型的可编程中 断控制器是8259A。
7.2.1 中断类型 8086有256种中断,分为两大类:
外部中断(硬件中断) 内部中断(软件中断)
图7.6 8086中断类型
1. 外部中断 (硬件中断)
(1)非屏蔽中断 NMI(类型号2) 有效,不受FR 中IF 的影响,常用于
处理系统的重大故障。
(2)可屏蔽的中断INTR 高电平有效,CPU 是否响应,取决于 FR 中 IF 的状态。常用于各种外设的中断。
2. 内部中断(软件中断)
通常由三种情况引起:
(1)INT n 指令中断 (n 为中断类型号) (2)处理 CPU 某些错误的中断
① 除法错中断 (中断类型号0) ② 溢出中断 (INTO)(中断类型号4)
(3)实现故障处理。
引起中断的原因,产生中断请求的来源。
通常有以下几种:
① 一般的I/O 设备,如键盘、打印机等。 ② 实时时钟。 ③ 硬件故障。 ④ 中断指令或软件故障,如程序错、运算
错、调试程序而设置的中断(例如设置 断点,单步运行等)。
(1)实现断点地址的保护与恢复。
(2)实现现场信息的保护。
中断向量 (中断服 务程序入口地址) 在表中 的地址 = 中断类型号 ×4
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第7章中断及中断控制器本章学习要点●中断技术概述、8086的中断类型●中断优先权及其管理、中断矢量●中断处理过程●可编程中断控制器8259A及其应用7-1 本章知识重点7-1-1 中断技术的基本概念1.中断的概念所谓“中断”是指CPU在正常执行程序时,由于内部/外部事件或程序的预先安排引起CPU暂时终止执行现行程序,转而去执行请求CPU为其服务的服务程序,待该服务程序执行完毕,又能自动返回到被中断的程序继续执行。

2.中断源能引起中断的外部设备或内部原因称为中断源。

按照与CPU的位置关系可分为内部中断和外部中断。

内部中断是CPU在处理某些特殊事件时所引起或通过内部逻辑电路自己去调用的中断。

外部中断是由于外部设备要求数据输入/输出操作时请求CPU为之服务的一种中断。

通常中断源有以下几种:(1)一般的输入/输出设备,如键盘、打印机等。

(2)实时时钟。

(3)故障源。

(4)软件中断。

3.中断源识别识别中断源通常有两种方法:查询中断和矢量中断。

(1)查询中断:就是用软件查询的方法确定中断源。

当CPU收到中断请求信号时,通过执行一段查询程序,从多个可能的外设中查询申请中断的外设。

(2)矢量中断:又称向量中断。

每个中断源预先指定一个矢量标志,要求外设在提出中断请求的同时,提供该中断矢量标志。

当CPU响应某个中断源的中断请求时,控制逻辑就将该中断源的矢量标志送入CPU,CPU根据矢量标志自动找到相应的中断服务程序入口地址,转入中断服务。

这种中断源识别方法比查询中断要快很多。

4.中断技术的优点(1)同步操作:中断方式不仅可以实现CPU和外设之问的并行工作,而且CPU可命令多个外设同时工作,这大大提高r CPU的利用率,也加快了输A./输出的速度。

(2)实现实时处理:利用中断技术可以及时处理随机输入到微型计算机的各种参数和信息,使微型计算机具备实时处理与控制的能力。

(3)故障处理:CPU可以就根据故障源发出的中断请求,立即去执行相应的故障处理程序,自行处理故障而不必停机,因此提高了微型计算机工作的可靠性。

7-1-2中断系统1.中断系统的功能(1)能实现中断响应、中断服务和中断返回。

当某个中断源发出中断请求n,J,CPU可决定是否响应这个中断请求。

如果CPU正在执行更紧急、更重要的工作时,可以暂不响应中断。

若允许响应这个中断请求,则CPU必须在执行完现行指令后,保护断点和现场,即把断点处的IP和CS值、各寄存器的内容与标志位的状态压入堆栈,然后再转去执行相应的中断服务程序,同时清除中断请求信号。

当中断服务程序执行完毕后,再恢复现场和断点,使CPU返回主程序继续执行,至此CPU的一次中断过程结束。

其过程如图7.1所示。

图7.1 中断的过程(2)能实现中断优先权排队在中断系统中,CPU一般要根据各中断请求的轻重缓急分别处理,即给每个中断源确定一个中断优先级别——中断优先权,系统能够自动地对它们进行排队判优,保证首先处理优先级别高的中断请求,待级别高的中断请求处理完毕后,再响应级别较低的中断请求。

(3)能实现中断嵌套当CPU响应某一中断请求,并为其服务时,若有优先权更高的中断源发出中断请求,则要求CPU能打断正在执行的中断服务程序,响应更高级别的中断请求。

在高级别中断请求处理完后,再返回被打断的中断服务程序继续执行,即实现中断嵌套。

CPU允许高优先级中断请求可以打断低优先级中断服务,使CPU对于急需处理的事件立即作出响应。

2.中断类型8086采用了矢量型的中断结构,共有256个中断矢量号,又称中断类型号。

按照与CPU的相对位置关系分为外部中断和内部中断。

内部中断也称软件中断,是由处理器检测到异常情况或执行软件中断指令所引起的一种中断。

通常有除法出错中断、INTO溢出中断、INT n中断、断点中断和单步中断等。

外部中断也称硬件中断,是由CPU的外部中断请求信号触发的一种中断,分为不可屏蔽中断NMI和可屏蔽中断INTR。

3.内部中断(1)除法出错中断:在执行除法指令DIV或IDⅣ时,若发现除数为0或商超过了目的寄存器所能表达的范围,则CPU会立即产生一个中断类型码为0的内部中断。

(2)INTO溢出中断:若上一条指令执行的结果使溢出标志位OF=I,则执行中断指令INTO 时,将引起中断类型码为4的内部中断。

(3)INT n指令:8086CPU执行一条INT n中断指令,就会发生一次中断,其中n为中断类型码(范围为0~255)。

(4)断点中断:8086CPU执行单字节中断指令INT 3,就产生一个中断类型码为3的内部中断,它主要用于程序调试。

(5)单步中断:当标志寄存器中的TF标志位为1时,CPU就处于单步工作方式。

这时CPU 在每条指令执行完后自动产生中断类型码为l的内部中断,作为中断处理过程的一部分,CPU 将自动把标志寄存器的内容和断点压入堆栈保存起来,然后将TF和Ⅲ清零。

4.内部中断的特点(1)中断矢量号是由CPU自动提供的,不需要执行中断响应总线周期去读取矢量号。

(2)除单步中断外,所有内部中断都无法禁止,即都不能通过执行CLI指令使IF位清零来禁止对它们的响应。

(3)除单步中断外,任何内部中断的优先权都比外部中断高。

8086CPU的中断优先权顺序为:内部中断(除法出错中断、INTn指令中断、INTO溢出中断、断点中断);NMI中断;INTR中断和单步中断。

5.外部中断8086CPU有两条外部中断请求信号线:NMI和INTR,用来输入外设向CPU发出的中断请求信号。

(1)非屏蔽中断请求NMI由NMI引脚引入的是不可屏蔽中断请求,采用边沿触发。

它不受中断允许标志位Ⅲ的影响,即使在关中断(IF=O)的情况下,CPU也能在当前指令执行完毕后就响应NMI上的中断请求。

(2)可屏蔽中断INTR由INTR引脚引入的是可屏蔽中断请求,采用电平触发方式,高电平有效。

CPU在当前指令周期的最后一个T状态采样INTR中断请求线,若发现有可屏蔽中断请求,CPU将根据中断允许标志位IF的状态决定是否响应。

如果IF=0,表示CPU处于关中断状态,屏蔽INTR线上的中断,CPU不理会该中断请求而继续执行下一条指令。

如果IF=I,表示CPU处于开中断状态,允许INTR线上的中断,CPU执行完现行指令后转入中断响应周期。

注意:可屏蔽中断的优先权低于非屏蔽中断。

7-1-3中断优先权与中断管理1.中断优先权实际的中断系统中常常有多个中断源,而中断申请引脚往往只有一条中断请求线。

于是在多个中断源同时请求时,CPU必须首先确定为哪一个中断源服务,要能辨别优先权最高的中断源并响应之。

当CPU在处理中断时,也要能响应更高级别的中断申请,而屏蔽掉同级或较低级的中断申请。

通常有两种方法解决中断优先权的识别问题。

(1)用软件查询方法确定中断优先权。

中断优先权由查询顺序决定,最先查询的中断源具有最高的优先权。

软件查询方法的优点是电路比较简单。

软件查询的顺序就是中断优先权的顺序,不需要专门的优先权排队电路,可以直接修改软件查询顺序来修改中断优先权,不必更改硬件。

缺点是当中断源个数较多时,由逐位检测查询到转入相应的中断服务程序所耗费的时间较长,中断响应速度慢,服务效率低。

(2)硬件优先权排队电路硬件优先权排队电路形式众多,有采用编码器组成的,有采用链式电路的。

硬件链式优先权排队电路又称为菊花环式优先权排队电路,它是利用外设连接在排队电路的物理位置来决定其中断优先权的,排在最前面的优先权最高,排在最后面的优先权最低。

2.中断管理8086CPU可管理256种中断。

对每种中断都指定一个中断矢量号,每一种中断矢量号都可以与一个中断服务程序相对应。

中断服务程序存放在存储区域内,而中断服务程序的入口地址存放在内存储器的中断矢量表内。

中断矢量表是中断矢量号与它相应的中断服务程序的转换表。

当CPU处理中断时,就需要指向中断服务程序的入口地址。

8086以中断矢量为索引号,从中断矢量表中取得中断服务程序的入口地址因为每个中断矢量号要占用4个字节单元。

两个高字节单元用来存放中断服务程序入口的段地址CS,两个低字节单元用来存放从段地址到中断服务程序入El地址的偏移值IP,故256个中断矢量号要占用1024个字节的存储单元,地址范围从00000H~003FFH。

当发生中断矢量号为n的中断请求时,CPU首先把矢量号乘以4,得到中断矢量表的地址,然后把中断矢量表4n地址开始的两个低字节单元内容装入IP寄存器,再把两个高字节单元内容装入cs寄存器,这样就把控制引导到类型rl的中断服务程序的起始地址,开始类型n的中断处理过程。

因此,为了让CPU响应中断后能转入相应的中断服务程序,就必须事前将中断服务程序的入口地址置入中断矢量表中。

中断矢量表分为3部分:专用中断、备用中断和用户中断。

(1)专用中断:类型o~类型4,共有5种类型。

专用中断的中断服务程序的入口地址由系统负责装入,用户不能随意修改。

(2)备用中断:类型5~类型3FH,这是Intel公司为软、硬件开发保留的中断类型,一般不允许用户改作其他用途。

(3)用户中断:类型40H~类型FFH,为用户可用中断,其中断服务程序的入口地址由用户程序负责装入。

这些中断可由用户定义为软件中断,由INT n指令引入,也可以通过]NTR 引脚直接引入的或通过可编程中断控制器8259A引入的可屏蔽中断。

3.微机系统的中断处理过程中断处理过程大致可分为中断请求、中断响应、中断处理和中断返回4个过程。

(1)中断请求cPu在每条指令执行结束后去采样或查询有无中断请求信号。

若查询到有中断请求,并且在允许响应中断的情况下,系统自动进入中断响应周期,由硬件完成关中断、保存断点、取中断服务程序的入口地址等一系列操作,而后转向中断服务程序执行中断处理。

由于外设的中断请求是随机发生的,系统中必须设置一个中断请求触发器把随机输入的中断请求信号锁存起来,并保持到CPU响应这个中断请求后,才能清除。

设置一个中断屏蔽寄存器,用输出指令来控制它们的状态,以决定其相应中断请求信号是否能发向CPU。

(2)中断响应若为非屏蔽中断请求,则CPU执行完现行指令后,就立即响应中断。

CPU若要响应可屏蔽中断请求,必须满足以F 3个条件:①无总线请求;②cvt:允许中断;③cvu执行完现行指令。

(3)中断处理在中断处理时要进行以下操作:● 保护现场:CPU响应中断时自动完成cS、IP寄存器以及标志寄存器F1ags的保护。

● 开中断:主要是为了实现中断嵌套。

● 中断服务:CPU通过执行中断服务程序,完成对中断情况的处理。

(4)中断返回中断返回是由执行中断服务程序中的中断返凹指令IRET来完成的。

当CPU执行该指令时,自动会把断点地址从堆栈中弹出到CS和IP中,原来的标志寄存器内容压入Flags。

相关文档
最新文档