当前位置:文档之家› 第五章 8086的中断系统

第五章 8086的中断系统


Y

Y

IF=1 非屏蔽中断 N 可屏蔽中断 单步中断
Y
中断响应周期 读中断向量号


中断响应过程

标志寄存器入栈 TEMP=TF,IF=TF=0
( 1) ( 2)
8086各种中断源的优先 CS:IP入栈
获取中断向量 权,实际上是指被识别
( 3)
( 4)
出来的先后; 还有NMI
N

Y
Y 多种中断同时请求时, TEMP=1 N 最先响应的则可能是单 执行服务程序 弹出 CS:IP 步中断或 NMI 中断。 弹出标志寄存器 返回被中断程序 ( 6) ( 5)
硬件中断
由CPU外部中断请求引脚NMI和INTR引起的
中断称为硬件中断(亦称为外部中断) ① 非屏蔽中断

通过CPU的NMI(Non-Maskable Interrupt)引
脚进入, NMI被响应时, 自动产生2号类型中断。

它不受中断允许标志的屏蔽,微处理器无法
禁止,将在当前指令执行结束予以响应;
5.2 中断处理过程
1. 中断过程
中断请求:
中断源向CPU发出请求中断信号。中断信号将被锁存, 直到CPU响应中断后,中断请求信号才被清除。
中断响应:
CPU 在执行每条指令的最后一个时钟周期检测中断请求 信号。若发现中断请求信号有效,在允许中断的条件下, CPU响应中断。
CPU会自动完成3项任务: ① 关闭中断,以禁止其它中断请求。
② 断点 (IP 和 CS) 和标志寄存器内容入栈保护。 ③ 获得中断服务程序入口地址,转中断服务
程序。
中断处理:
① 保护现场

相关工作寄存器的内容压栈保护。
② 开中断
• 若要响应高级别的中断,则需要打开中断。
③ 执行中断服务程序 ④ 关中断
• 使得不被中断,可顺利恢复现场。
⑤ 恢复现场
• 将压栈保护的内容顺序出栈给相关寄存器。
硬件中断两大类。
软件中断
由CPU执行某些指令引起的中断称为软 件中断(亦称内部中断)。
它包括:

除法出错中断-0类型中断
在作除法时,若除数为 0 或商超出了有
关寄存器能表示的数值范围,则产生除法 出错中断。
例如 mov bl,0 idiv bl ;除数BL=0,产生除法错中断 mov ax,200h mov bl,1 div bl ;商=200H,不能用AL表达 ;产生除法错中断
2. 中断向量
1) 中断向量

中断服务程序的入口地址亦称中断向量。它 由两部分组成:
① 中断服务程序所在段的段基址(2个字节) 。
② 中断服务程序入口的偏移地址(2个字节) 。
2) 中断向量表

一种类型的中断向量为 4个字节 , 256种中
断的中断向量总共占用 1024 个字节。在 8086系统中,所有的中断向量按类型顺序 存放于内存的最低地址(00000H~003FFH) 的1K单元中。存放中断向量的这1K单元称 为中断向量表。

软件中断,如为调试程序而设置的中断。
中断系统

系统为实现中断而采用的硬件和软件措施。
计算机采用中断系统的目的

维持系统的正常工作,提高系统效率。 实时处理。 为故障处理作准备。
中断系统应具备的基本功能

对于硬设备的中断请求,要具备屏蔽和开
放功能,使得程序员能灵活控制。

能实现“中断判优”,即中断源排队,当

8086的非屏蔽中断的类型号为2;

非屏蔽中断主要用于处理系统的意外或故障。
例如:


电源调电前的数据保护
存储器读写错误的处理
② 可屏蔽中断

中断请求信号通过 CPU 的 INTR( 打断 ) 引脚 且中断允许标志IF=1时, CPU响应中断;
进入;中断响应信号从I 则中断请求被屏蔽;
第五章
中断系统
5.1 中断的基本概念
中断
CPU 暂停执行现行的程序,转而处理随机 事件,处理完毕后再返回被中断的程序处继续 执行,这一全过程称为中断。
中断源
能够引发CPU中断的信息源称为中断源。
常见的中断源为:

一般 I/O设备,如CRT终端、打印机等。
数据通道,如磁盘、磁带等。
实时时钟,如定时器芯片8253产生的定时 中断请求信号。 故障信号,如电源掉电等。

通常可屏蔽中断源经过中断控制器 8259A
管理再向CPU发INTR请求。


中断标志IF的状态
IF=0:可屏蔽中断不会被响应 关中断、禁止中断、中断屏蔽统复位,使 IF=0 任何一个中断被响应,使IF=0 执行指令CLI,使IF=0 IF=1:可屏蔽中断会被响应


• •
开中断、允许中断、中断开放执行; 指令STI,使IF=1 执行指令IRET恢复原IF状态
⑥ 中断返回
• 中断服务程序的最后一条指令是中断返回指令
IRET, 执行后IRET后CPU自动从堆栈中弹出IP 、 CS和FLAGS的内容, 返回主程序继续执行。
现行指令
软件中断 N
查询中断的顺序, 决定了各种中断源的优先权 Y 软件中断 高
除法错中断 Y 指令中断 溢出中断

NMI
N INTR N TF=1 N 下条指令

N型中断向量在中断向量表中的位置: 存放地址= N×4~( n×4 +3 ) N×4字单元存放偏移地址; N×4+2的字单元存放段基址。
② 单步中断-1类型中断 在单步标志TF=1且中断允许标志IF=1时,
每执行一条指令就引起一次中断。
③ 断点中断-3类型中断 主要用在除错调试程序中, 利用“INT 3” 设置断点, 目的是显示断点前程序的执行结果。
④ 溢出中断-4类型中断 当溢出标志 OF=1 时,执行指令 INTO,则 产生溢出中断。
例如
MOV AX , 2000H
ADD AX , 7000H
INTO ;2000H+7000H=9000H,溢出:OF=1
;因为OF=1,所以产生溢出中断
⑤ 中断指令 INT n INT n是中断指令, n是中断类型号 (0~
255)。
磁盘操作系统、基本输入输出系统的功 能即是用INT n指令中断调用。
有多个中断源提出请求时,高级别的中断请 求能被优先响应。

能实现中断嵌套,即高级别的中断源能
够中断低级别的中断服务程序。

系统响应中断后,能自动转入中断处理。
中断处理结束,能自动返回。
5.2 8086中断系统
1. 8086系统的中断分类
8086系统共有 256种类型的中断,对应的 中断类型号为: 0~255。可分为软件中断 和
相关主题