第 8 章 中断系统与可编程中断控制器 8259A
1. 什么叫中断? 8086 微机系统中有哪几种不同类型的中断?
答:在 CPU 执行程序的过程中,由于某个事件的发生, CPU 暂停当前正在执行的程序,转
去执行处理该事件的一个中断服务程序,待中断服务程序执行完成后, CPU 再返回到原被
中断的程序继续执行。这个过程称为中断。
8086 微机系统中有 3 种中断 :
1) 外部可屏蔽中断。
2) 外部不可屏蔽中断。
3) 内部中断
2. 什么是中断类型?它有什么用处?
答:通常用若干位二进制编码来给中断源编号, 该编号称为中断类型号。 8086 微处理器
用 8 位二进制码表示一个中断类型,有 256 个不同的中断。这些中断可以划分为内部中
断、外部不可屏蔽中断、外部可屏蔽中断三类。
用处:使 CPU 识别中断源,从而能正确地转向该中断源对应的中断服务程序入口。
3. 什么是中断嵌套?使用中断嵌套有什么好处?对于可屏蔽中断, 实现中断嵌套的条件是
什么?
答:微处理器在处理低级别中断的过程中, 如果出现了级别高的中断请求, 微处理器停止执
行低级中断的处理程序而去优先处理高级中断, 等高级中断处理完毕后, 再接着执行低级的
未处理完的程序,这种中断处理方式成为中断嵌套。
使用中断嵌套的好处是能够提高中断响应的实时性。对于某些对实时性要求较高的操
作,必须赋予较高的优先级和采取中断嵌套的方式, 才能保证系统能够及时响应该中断请求。
对于可屏蔽中断, 实现中断嵌套的条件有: (1)微处理器处于中断允许状态 (IF=1)(2)
中断请求的优先级高于正在执行的中断处理程序的优先级。 (3)中断请求未被 8259 屏蔽。
(4)没有不可屏蔽中断请求和总线请求。
4. 什么是中断向量?中断类型号为 1FH 的中断向量为 2345H:1234H ,画图说明它在中断向
量表中的存放位置。
答:中断向量为每个中断服务子程序的入口地址,为 32 位(16 位的偏移地址和 16 位的段
地址),在中断向量表中占用 4 个地址单元。 在 8086CPU 组成的计算机系统中, 采用最低的
1024 个地址单元(称为 0 页)来存储中断向量。这 1024 个地址单元成为中断向量表。
- 73 -
因此,中断类型号位 1FH 的中断向量,在中断向量表中的存储位置为 1FH× 4=07CH 。
中断类型号为 1FH 的中断向量在中断向量表中的存放位置如图 8.1 所示。
图 8.1 中断类型号为 1FH 的中断向量在中断向量表中的存放位置
5. 中断向量表的功能是什么?叙述 CPU 利用中断向量表转入中断服务程序的过程。
答:中断向量表是用来存放中断向量的。 是中断类型号与它对应的中断服务程序入口地址之
间的换算表。
1) CPU获得中断类型号 n 后,将当前 PSW、CS和 IP 的内容依次压入堆栈,保存断点
的状态和断点地址,以便返回时恢复。
2) 将 PSW中的 IF 位和 TF 位清 0,关闭中断。
3) 把地址为 4× n 和 4× n+1 两个单元的 16 位数作为中断服务程序入口的偏移地址置
入 IP ,把地址为 4× n+2 和 4× n+3 两个单元的 16 位数作为中断服务程序入口的段
地址置入 CS。
4) 转入中断服务程序。
6. 叙述可屏蔽中断的响应过程。
答:在 IF 位为 1 情况下, 从 INTR 端加入中断请求信号开始, 到进入中断服务程序为止
- 74 -
所经过的一系列操作,称为可屏蔽中断的响应过程。首先等待当前指令结束后,进入中
断响应周期。然后,从微处理器外部的中断控制逻辑获得中断类型号。随后把当前的
PSW、CS 和 IP 的内容依次压入堆栈, 接着清除 PSW 中的 IF 位和 TF 位为 0。最后把中
断服务程序的入口地址置入 IP 和 CS。至此,完成了可屏蔽中断的响应过程,开始进入
中断服务程序。
7. 简要叙述 8259A 内部 IRR、IMR 、ISR 三个寄存器的作用。
答:IRR:中断请求寄存器,用来锁存外部设备送来的
IR ~IR 中断请求信号。当外部中断
7 0
请求线 IR
i 有中断请求时, IRR 中与之对应的第 i 位被置 1。该寄存器内容可以被微处理器
读出。
IMR :用于设置中断请求的屏蔽信号。此寄存器第 i 位被置 1 时,与之对应的外部中断
请求线 IR
i 被屏蔽,不能向微处理器发出 INT 信号。
ISR:用于记录当前正在被服务的所有中断级,包括尚未服务完而中途被更高优先级打
断的中断级。若微处理器响应了 IR
i 中断请求,则 ISR 中与之对应的第 i 位置 1。中断处理
结束前,要用指令清除这一位。
8. 中断控制器 8259A 的初始化编程是如何开始的?
答: