当前位置:文档之家› 7章中断系统

7章中断系统


① 0型中断——除法出错中断。 ② 1型中断——单步中断。 ③ 3型中断——断点中断(INT)。 ④ 4型中断——溢出中断(INTO指令)
(2)指令中断——INT n指令,其类型号就是 给定的n。
7.2.2 中断向量和中断向量表
IP 000 类型0中断入口(除法出错) CS
专 004 类型1中断入口(单步中断) IP
(2)CPU的标志寄存器入栈,以保护各个标志位, 此操作类似于PUSHF指令。
(3)清除IF和TF标志,屏蔽新的INTR中断和单步 中断
(4)保存断点,即把断点处的IP和CS值压入堆栈, 先压入CS值,再压入IP值。
(5)根据第一步计算出来的地址从中断向量表中 取出中断服务程序的入口地址(段和偏移),分 别送至CS和IP中。
3.若CPU处于开中断状态,则在当前指令 执行结束后,启动中断响应总线操作,发出 两个负脉冲作为响应信号。
4.8259A接收到第一个负脉冲,完成如下工作:
(1)使ISR相应位置1,表示CPU已为该中断请求服务。
(2)使IRR的相应位清0。
5.8259A接收到第二个负脉冲,将中断类型号送 上数据总线。中断类型号由用户编程和中断请求 引脚IRi的序号i共同决定(CPU读取中断类型号, 经响应过程后,进入中断服务程序,直到服务结 束返回)。
图5-1 中断处理过程
1.中断请求
中断请求是中断过程的第一步。中断源产生中断请求 的条件,因中断源而异
2.中断判优
由于中断产生的随机性,可能出现两个或两个以上的 中断源同时提出中断请求的情况。这时就必须要求 设计者事先根据中断源的轻重缓急,给每个中断源 确定一个中断级别——优先权。
3.中断响应
中断优先权确定后,发出中断申请的中断源中优先权 最高的中断请求就被送到CPU的中断请求引脚上。
19 IR1 18 IR0 17 INT
16 SP/EN 15 CAS2
图5-10 8259A引脚信号
7.3.2 8259A的工作过程
1.中断源通过IR0~IR7向8259A发中断请 求,使得8259A的中断请求寄存器IRR的相 应位置1。
2.IRR中经中断屏蔽寄存器IMR允许后的置 位位进入优先权判别器PR,PR将其中最高 优先权的中断请求从INT输出,送至CPU的 INTR端。
请求
中断返回
中断返回
低级 中断 服务 程序
高级 中断 服务 程序
图5-5 两级中断嵌套的示意图
实现多级中断需要注意的两个问题:
(1)实现多重中断的重要条件是在中断服务 执行过程中必须开放中断。
(2)必须加入屏蔽本级和较低级的中断请求 的环节,保证只有高级中断源才能中断低级的 中断处理。
7.2 8086 的中断结构
中断请求 中断判优 中断响应
中断处理 中断返回
中断源提出中断请求
判优逻辑进行优先排队
CPU执行完当前指令
中断请求信号有效?

CPU允许中断否?

CPU关闭中断
保护程序断点
CPU取下一条指令


找出中断源,形成中断服务程序 入口地址,并转向中断服务程序
保护现场 执行中断服务程序
恢复现场 CPU开放中断 返回原程序断点处
ISR
优先权 分析器
PR
中断请求
IR0
寄存器
IRR
IR7
中断屏蔽寄存器IMR
图5-9 8259A内部结构框图
2.8259A的引脚特性
CS 1
2 WR
3
RD 4
D7
5
D6 D5
6
D4
7
D3
8
D2
9
D1 10
D0 11
CAS0 12
CAS1 13
GND 14
28 VCC 27 A0
26 INTA 25 IR7 24 IR6 23 IR5 22 IR4 21 IR3 20 IR2
例7-1 用MOV指令写入中断向量。
假设中断向量号为60H,中断服务程序的段基址是SEG_INTR, 偏移地址是OFFSET_INTR,则填写中断向量表的程序段为:

CLI
;关中断
CLD
;内存地址加1
MOV AX,0
MOV ES,AX
;给ES赋值为0
MOV DI,60H*4
;中断向量指针→DI
MOV AX,OFFSET_INTR ;中断服务程序偏移值→AX
入口地址,以便CPU将此地址置入 CS:IP寄存器 , 从而实现程序的转移
7.1.2 中断系统的功能
中断系统是指实现中断功能的软硬件的统称 1.正确识别中断请求,实现中断响应、中断处
理及中断返回 2.实现中断优先级排队 3.实现中断嵌套
7.1.3 中断处理过程
一个完整的中断处理过程包括中断请求、中断判 优、中断响应、中断处理和中断返回五个基本 阶段。
常见的中断源有
(1)故障中断,如电源掉电、内存奇偶错等; (2)软件中断,如CPU执行某些指令或操作引起的中
断等; (3)输入输出设备中断,如打印机、CRT、磁盘等; (4)实时时钟,如定时器提供的实时信号等。
3. 中断识别
即找出是哪一个中断源发出的中断请求 中断识别的目的是要形成该中断源的中断服务程序的
软件中断
硬件中断
图5-6 8086的中断源类型
1.外部中断
(1)非屏蔽中断NMI。用户不能用软件屏蔽的 中断。
(2)可屏蔽中断INTR。8086的INTR中断请求 信号来自中断控制器8259A,是电平触发方式, 高电平有效。
2.内部中断
(1)专用中断。在中断向量表中,类型号0~4 中除了类型号2的NMI非屏蔽中断外,其余均为 专用的软件中断,它们通常是由某个标志位引 起的中断。
在这种方式下,优先级顺序不是固定不变的, 一个设备得到中断服务后,其优先级自动降为最低。 其初始的优先级顺序规定为IR0,IR1,IR2,…, IR7
该方式用于系统中多个中断源优先级相等的场合
(2)优先级特殊循环方式。
这种方式与优先级自动循环方式惟一的区别是, 其初始的优先级不是固定IR0为最高,然后开始循环, 而是由程序指定IR0~IR7中任意一个为最高优先级, 然后再按顺序自动循环,决定优先级。
7.1中断的基本概念
7.1.1 中断与中断源
1.中断
在CPU正常运行程序时,由于内部事件、外部事件或 由程序预先安排的事件所引起的CPU暂时停止正在 运行的程序,而转去执行请求CPU服务的内部/外部 事件或预先安排事件的服务程序,待服务程序处理 完毕后又返回去继续执行被暂停的程序
2.中断源
发出中断请求的外部设备或引起中断的内部原因称为 中断源
可通过OCW3的D6D5=11来设定。
2.中断嵌套方式
(1)全嵌套方式。
在此种方式下,中断优先级按IR0~IR7顺序进 行排队,并且只允许中断级别高的中断源去中断级 别低的中断服务程序,但不能相反。这是8259A最 常用的方式。
在对8259A进行初始化以后,没有设置其他优 先级方式,则自动按此方式工作。
(2)特殊全嵌套方式。
与全嵌套方式基本相同,所不同的是在特殊全 嵌套方式下,当执行某一级中断服务程序时,可响 应同级的中断请求,从而实现对同级中断请求的特 殊嵌套(8259A级联使用时,某从片的8个中断源对 主片来说,可以认为是同级的)。
特殊全嵌套方式用于多片级联。
3.优先级控制方式
(1)优先级自动循环方式。
MOV AX,OFFSET_INTR
;中断服务程序偏移值→AX
MOV ES:[BX],AX ;装入偏移地址
MOV AX,SEG_INTR
;中断服务程序的段基址→AX
MOV ES:[BX+2],AX ;装入段基址

7.2.4 8086的中断响应过程
1.内部中断响应过程
(1)将类型号乘4,计算出中断向量的地址;
1.软件查询判优
CPU D0~D7
并行 输入 接口
中断 请求 寄存器
IRQ0 IRQ1 IRQ2 IRQ3 IRQ4 IRQ5 IRQ6 IRQ7
INTR
≥1
图5-2 软件查询判优电路
断点保护
IRQ0? Y N Y
IRQ1? N
中断源0的中断服务程序 中断源1的中断服务程序
IRQ7?
Y
N
中断返回
中断源7的中断服务程序
IRET指令 的操作
图7-9 中断响应和中断处理流程
7.3可编程中断控制器8259A
7.3.1 8259A的内部结构和引脚特性
1.8259A的内部结构
INTA INT
D7~D0
数据 总线 缓冲器
控制逻辑
RD
WR A0 CS
CAS0 CAS1 CAS2 SP/EN
读/写 逻辑
数据 总线 缓冲器
中断服务 寄存器
1.中断屏蔽方式
(1)普通屏蔽方式。利用操作命令字OCW1,使 屏蔽寄存器IMR中的一位或数位置1来屏蔽一个或数 个中断源的中断请求。
若要开放某一个中断源的中断请求,则将 IMR中相应的位置0。
(2)特殊屏蔽方式。在某些场合,执行某一个中 断服务程序时,要求允许另一个优先级比它低的中 断请求被响应,此时可采用特殊屏蔽方式
(1)非屏蔽中断响应。 (2)可屏蔽中断响应。
CLK ALE LOCK INTA D7~D0
第一个总线
T1
T2
INTA 周期
T3
T4
第二个总线
T1
T2
INTA 周期T3 NhomakorabeaT4
中断 类型号
图7-8 8086对INTR的中断响应时序
取指令 执行指令
相关主题