8086中断系统讲解
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的中断系统

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) 和标志寄存器内容入栈保护。 ③ 获得中断服务程序入口地址,转中断服务
程序。
中断处理:
① 保护现场
•
相关工作寄存器的内容压栈保护。
7.48086中断系统

地址(中断向量),然后转到该入口地址去执行中断
服务程序。
8086/8088的向量中断
◆ 中断类型号——8086/8088最多能管理256个中断,统一编号
为0~255(00H~FFH)。 ◆中断向量——中断服务程序的入口地址,即段基址CS:偏 移址IP 。 ◆中断向量表——8086/8088系统在内存的最低1K字节(0段 的0000H~03FFH)建立了中断向量表,按中断类型号顺序 存放256个中断向量。 ◆中断向量表地址——中断向量在中断向量表中的地址。中断 向量表地址与中断类型号的关系为:
×4
CS
3. 8086/8088中断响应过程——软件 中断
软件中断类型号n由系统固定分配(专用)或由中断(INT) 指令指定,所以软件中断能自动获得中断类型号n 。 必须事先设置中断类型号n 的中断向量表。 软件中断响应过程: 状态寄存器和中断断点(当前的CS:IP ,返回地址) 压入 堆栈; 中断类型号n×4,得到中断向量表地址; 读取连续4个字节的内容——中断向量,送入IP和CS;
软件中断(内部中断)——中断指令
INT n引起的中断
中断指令INT n引起的(中断类型号为n):中断 指令的指令格式为 INT n,操作数n就是中断类型 号。当CPU执行完毕中断指令INT n后,就会立 即产生一个中断类型号为n的中断。
硬件中断(外部中断)——不可屏蔽 中断
不可屏蔽中断(非屏蔽中断)NMI(中断类型 号为2):就是用户不能通过CPU内的中断允许 触发器IF控制的中断,由8086CPU的NMI管脚引 入。NMI中断请求采用上升沿触发方式,这种 中断一旦产生,在CPU内部直接生成中断类型 号02。一般用于紧急故障处理。
微机原理15.§6.3 8086中断系统

§6.3 8086中断系统
8086具有一个简单而灵活的中断系统,中断由 类型号0-255指定,既可用软件也可用硬件来 启动中断,中断源可来自CPU内部,也可来自 外围芯片,如下图所示。
2013-7-11
1
第六章 中断
非屏蔽中断
§6.3 8086中断系统
IRQ0 IRQ1 IRQ2 中断逻辑 8259A IRQ3 IRQ4 IRQ5
00FCH 类型63中断入口 0100H 类型64中断入口
03FCH 类型255中断入口
14
......
......
2013-7-11
13
第六章 中断
§6.3 8086中断系统
8086中断矢量表
专 用 中 断 系 统 备 用 用 户 使 用
2013-7-11
0000H 0004H 0008H 000CH 0010H 0014H
类型0中断入口(除法出错) 类型1中断入口(单步中断) 类型2中断入口(NMI) 类型3中断入口(断点中断) 类型4中断入口(溢出中断) 类型5中断入口
2013-7-11
6
第六章 中断
§6.3 8086中断系统
1) 外部中断系统(如8259A)响应第二个INTA,把 中断类型号 n 送上数据总线; 2) CPU读取中断类型号,乘以4得到中断矢量表 入口地址;
3) 标志寄存器入栈,清除IF、TF,并把断点地址 入栈;
4) 从中断矢量表中取出中断服务程序的入口地址, 装入CS和IP。
2013-7-11
7
第六章 中断
§6.3 8086中断系统
2. NMI 非屏蔽中断请求NMI通知CPU,系统发生了灾 难性事件,如电源掉电。 NMI请求不能被禁止,应立即响应。它的优先 级比INTR线上的任何一级中断的优先级都高。 发生NMI时,CPU不需要发中断响应周期,用 INTA去读取中断类型码。CPU规定NMI的中断 类型号为2。因此CPU接收到NMI请求后,自动 启动NMI处理程序。
中断概念8086

8086中断响应时序
第一个中断响应总线周期
CLK T1 T2 T3 T4
第二个中断响应总线周期 T1 T2 T3 T4
ALE
INTA*
AD7~AD0
TYPE
总结:中断操作的5个步骤:
(1) (2) (3) (4) (5) 取中断类型号 计算中断向量指针 取中断向量,偏移地址送IP,段地址送CS 转入中断处理程序 返回到断点
指令/CPU 启 动 的
软件中断(内部)
硬件中断(外部)
INTn 指令
非屏蔽中断请求 (2)
NMI 中 断 逻 辑 INTR
INT3 断点 中断
INTO 溢出 中断 OF=1 (4) 单步 中断 TF=1 (1) 除数为 0 中断 (0)
中 断 控 制 器
可 屏 蔽 中 断 请 求
(3)
8259A
2.设置新中断向量: PUSH DS MOV AX, SEIN MOV DS, AX ; 新中断向量段地址放DS MOV DX, OFIN ;新中断向量偏移地址放DX MOV AL, N ;利用原中断类型码 MOV AH, 25H INT 21H ; 设置新的中断向量 POP DS 3.恢复原中断向量
NMI中断请求输入线上输入 用中断指令使CPU响应中断
中断类型
可屏蔽中断
CPU响应中断的方式
开中断指令(IF=1) 响应 关中断指令(IF=0) 屏蔽INTR上来的中断请求 CPU必须予以响应,不能由软件指令屏蔽
非屏蔽中断
软件中断
CPU只要执行该指令,即完成相应的中断功能
8086中断向量
• 中断向量与中断向量表 中断向量:每种中断处理程序的首地址 称为中断向量。 中断向量表:8086将内存最低地址的1K 单元作为中断向量表,存放256种中断处 理程序的入口地址,每个地址占4字节。 中断向量表的分配如下图所示:
《微机原理》8086与PC(2-2)

许临时开放对低优先级中断源的服务
8259A的工作方式(续)
中断结束方式
中断自动结束方式:ISR中在响应时自动置1的位在进
入中断服务程序后自动清0
一般中断结束方式:在全嵌套方式下,EOI命令中不
指定结束的中断级,约定结束ISR中的最高优先级中 断,对应位将被复位
中断向量表的构成
中断向量表:把所有中断源的中断向量集中在
一起,形成中断向量表
8086在内存中地址为00000H~003FFH的 存储区内建立中断向量表,共存放256个中断向 量,每个向量占4个字节,IP在低地址单元、 CS在高地址单元
此表的查询索引为中断类型号
中断类型号及其获取
中断类型号:系统分配给每个中断源的代
为I/O设备服务
中断服务程序执行 中断返回(IRET)
断点和FLAGS从 堆栈中弹出(断点恢复)
恢复现场
给中断控制器发中 断结束(EOI)命令
回到中断前运行 的程序继续执行
中断传送流程
返回
8259A芯片
可编程中断控制器8259A主要功能为:
(1)对8个外部中断源进行管理,具有8级优 先权控制,通过级连可扩展至64级优先权控制。
五、8253/8254定时/计数器
主要功能
3个独立的16位计数器 每个计数器可以按二进制或BCD码计数 计数速率可达2MHz(8254-2达10MHz) 每个计数器有6种工作方式,可编程设置和改
变 输入输出引脚与TTL电平兼容
8253内部结构图
计数器结构
8253有三个独立的计数器(计数通道)
计数初值寄存器(16位)
先读写最低有效字节再
读写最高有效字节
第8章中断(8.2-8086中断系统)
8088CPU中断响应周期时序
第 一 个 中断响应周期
第 二 个 中断响应周期 T1
T1
CLK INTA AD7~AD0
T2
T3
T4
T2
T3
T4
向量类型
30
中断服务和返回
(5) 中断服务程序:保护现场、中断处理、恢复现场 (6) IRET ; (IP)←((SP+1),(SP)) (SP)←(SP+2) (CS)← ((SP+1), (SP)) (SP)←(SP+2) (FR)← ((SP+1), (SP)) (SP)←(SP+2)
§8.2 8086/88中断系统 (p241)
§8.2.1 中断结构 8086/88系统可处理256个中断源。
编号为0~255——中断类型号
分为:硬件(外部)中断 软件(内部)中断
1
CPU
INT n
NMI
中断逻辑
非屏蔽中断源
8259A
INTR 中断
控制 器 INT 指令 INTO 指令 除法 错误 单步 中断
的向量地址 中断向量。
0000:0049H 0000:004AH
0000:004BH
中断响应后 (CS)及(IP)的内容 ? (SP)的内容 ? (执行前(SP)=122AH) 19
例2:某段内存单元内容(16进制数)如下:
0000:00b0H AA 22 23 56 78 9A AB 11 56 3D BC 2A 2D …20 0000:00c0H BB 11 21 5B 18 9A 00 35 67 3D A1 6A 7D …BB C 则执行INT 31h 的中断服务程序的入口地址为_______
第6章 8086中断系统
条件:
CPU开中断 开中断 有级别更高的中断源请求
6. 中断系统功能 中断系统功能
(1)进行中断优先权排队 ) (2)实现中断嵌套 ) (3)自动响应中断 )
CPU在响应中断时通常要自动做三件事: 在响应中断时通常要自动做三件事: 在响应中断时通常要自动做三件事 自动关闭中断和把原执行程序的断点地址压入堆栈 按中断源提供的中断矢量自动转入相应中断服务程序 执行 自动或通过安排在中断服务程序中指令来撤消本次中 断请求, 断请求,以避免再次响应本次中断的请求
2. 中断源 中断源
外部设备中断源 控制对象中断源 故障中断源 定时脉冲中断源
3. 中断的分类 中断的分类
可屏蔽中断 非屏蔽中断 软件中断
内部中断
INTR(8086)/INT(51) ) ) NMI(8086) ) 除具有中断功能的接口电路 具有中断功能的接口电路
(4)中断返回 )
§6.3 8086/8088中断系统 中断系统
1. 中断分类 中断分类
中断特点: 中断特点: 特点 矢量型中断, 个中断矢量号(设备号 矢量型中断,有256个中断矢量号 设备号 (0~255) 个中断矢量号 设备号) ~ 非屏蔽中断 硬件中断
(外部中断) 外部中断)
NMI引入,1个,不受 的屏蔽 引入, 个 不受IF的屏蔽 引入 INTR引入,多个,受IF的屏蔽 引入,多个, 引入 的屏蔽
4. 软件中断(内部中断) 软件中断 内部中断 中断)
INT n
中断矢 量号
特点: 特点: 中断矢量号由CPU内部自动提供,不需要执行中断响 内部自动提供, 中断矢量号由 内部自动提供 应总线周期去读取矢量号 除单步中断外,所有内部中断都不可以用软件屏蔽, 除单步中断外,所有内部中断都不可以用软件屏蔽, 即都不能通过执行CLI指令使 清0来禁止对它们的响 指令使IF清 来禁止对它们的响 即都不能通过执行 指令使 应 除单步中断外, 除单步中断外,所有内部中断的优先级别均高于外部 中断 软中断不具有随机性
中断系统 计算机原理
统板上RAM奇偶错,I/O通道奇偶错和8087异常中断。
中断屏蔽寄存器
(IMR)
计算机原理讲义
8259内部结构说明
※ 内部结构说明 IRR — 中断请求寄存器,保存 8个输入端IR0~IR7的中断申请状态,输入可 高电平有效,也可上升沿有效; ISR — 中断服务寄存器,保存CPU正在处理的中断请求; IMR — 中断屏蔽寄存器,对中断申请进行屏蔽控制;
操作命令寄存器组: OCW1~OCW3 INT 中断申请输出,高电平有效,可连接8086 INTR引脚 /INTA 中断响应输入,接收8086发出的中断响应信号,有效时8259应输 出中断类型码
计算机原理讲义
※ 内部结构说明
D7~D0 双向三态数据线,传送数据 /RD 读信号,低电平有效
CS WR RD /CS 片选信号,低有效,给8259分配地 D7 D6 址 D5 D4 A0 用于选择8259内部不同的寄存器。 D3 D2 CAS2~CAS0 级联信号线,当8259为主 D1 D0 片时为输出,从片时为输入 CAS0 CAS1 SP/EN 在非缓冲工作方式时,用作输入, GND
计算机原理讲义
8086 中断结构
二. 软件中断
1. 除法溢出中断( DIV和IDIV)(INT 0)
若除数为0或商超过寄存器所能表达的范围,则产生类型为0的软件中断
2. 单步中断 (INT 1) 若TF=1,则CPU每执行完一条指令后便产生类型码为1的软件中断 3. 执行 INT 指令引起的中断 (INT n) 执行INT n指令则会引起中断类型码为n的软件中断 4. 执行 INTO 指令引起的中断(INT 4) 若OF=1,则指令INTO引起中断类型码为4的软件中断
第8章中断(8.2-8086中断系统)
1
CPU
INT n
NMI
中断逻辑
非屏蔽中断源
8259A
INTR 中断
控制 器 INT 指令 INTO 指令 除法 错误 单步 中断
IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7
2
可 屏 蔽 中 断 源
1,硬件中断 ,
分为 非屏蔽中断 可屏蔽中断
3
1),非屏蔽中断 ,
从NMI引脚(17脚)输入 NMI引脚 17脚 引脚( 不受IF控制 不受IF控制
中 断 向 量 表
0000:0000H 0001H 0002H 0003H 0004H 0006H 0008H 000AH 000CH 000EH 0010H 0012H 0014H 0016H
007CH 007EH 0080H 0082H 类型32中断矢量(用户可用) 类型31中断矢量(保留)
(IP) (CS) (IP) (CS) 224个用户可用
向量地址
中断向量
0000:0048H
60 70 80 90
IPL IPH CS L CS H
的向量地址 中断向量. 中断向量.
0000:0049H 0000:004AH 0000:004BH
中断响应后 (CS)及(IP)的内容 ? 122AH (SP)的内容 ? (执行前(SP)=122AH) 执行前( 19
20
? 中断向量 总之: 总之:类型号
类型号× 向量地址连续4个单元 向量地址连续 类型号×4 =向量地址连续 个单元 存放中断向量
21
8086系统的 8086系统的256个中断源分为三类: 系统的256个中断源分为三类 个中断源分为三类: 第一类: 第一类:专用中断 0~4号,系统定义. 系统定义. 第二类: 第二类:系统保留的中断 5 ~ 31号 , 共 27个 , 为保持系统间的兼容及与将来 31 号 27 个 Intel系统的兼容 Intel系统的兼容. 系统的兼容. 第三类: 第三类:用户定义 32 ~ 255 号 , 共 224 个 , 原则上可由用户定义为软 32~ 255号 224个 中断( 或硬中断(通过INTR引入 引入, 中断(INT n),或硬中断(通过INTR引入,使用 时要用户装入相应的中断向量) 时要用户装入相应的中断向量). 在这类中断中断中,有的系统已分配有固定的用处, 在这类中断中断中,有的系统已分配有固定的用处, 如类型号20H FH为DOS软中断 用户应避开. 软中断, 如类型号20H~3FH为DOS软中断,用户应避开.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中断响应总线周期
中断响应过程的总线操作
• 第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. 等待或串操作时,允许过程中进入中断
4. 硬件中断的响应和时序
• 可屏蔽中断的响应过程 :
– – – – – 从数据总线上读取中断类型码,存入暂存器 将标志寄存器的值推入堆栈 把标志寄存器的IF和TF清零 将断点保护到堆栈中。 寻找中断向量,转入中断处理程序
• INTR信号:
– 电平触发信号 – 高电平要维持到CPU相应中断才结束
• NMI信号:
2.3.3 中断操作和中断系统
1. 8086的中断分类
硬件中断(NMI和INTR), 软件中断
2. 中断向量和中断向量表
• 中断类型号:8086中断系统中的每一个 中断都有一个0-255号的中断类型号; • 中断向量:所谓中断向量就是中断服务 程序的入口地址(段地址、偏移量地址); • 中断向量表:为便于进入中断服务程序, 将各个中断向量组成一个表放在固定位 置上(0000H-003FFH),由此表得到相 应中断的中断向量,将此向量传送给指 令指针,进入相应的中断服务程序。