第7章 中断系统和中断控制器8259A
合集下载
机电-第7章中断系统和中断控制器8259A

第 7 章中断系统和中断控制器 8259A
1.中断原理 2.8086 CPU中断系统 3.可编程中断控制器8259A 4.PC/XT机的中断结构
第一节 中断和中断系统 1. 什么是中断
中断:是指CPU在正常运行程序时,由 于内部/外部事件或由程序预先安排的 事件,引起CPU中断正在运行的程序, 转去为该事件服务。服务完毕,再返回 去继续运行被暂时中断的程序的过程。 中断服务(处理) 程序、断点
3. 中断优先权
(1) 软件查询方式
●软件查询优先方式是最简单的中断优先处理方式。图6.5显 示了采用软件查询方式的接口电路。 保留现场 Y 外设A中断服务程序 Y 外设B中断服务程序 Y 外设C中断服务程序 图4 软件查询方式流程 图
A申请服务?
N B申请服务? N C申请服务? N 恢复现场
查询程序有屏蔽法和位移法两种安排方式。 1)屏蔽法 MOV DX,380H IN AL,DX;输入中断请求触发器的状态 TEST AL,80H;检查最高位(外设A)是否有请求 JNZ AIS;有,则转至外设A服务程序 TEST AL,40H;否,检查外设B是否有请求 JNZ BI5;有,转至外设B服务程序 TEST AL,20H;否,检查外设C是否有请求 JNZ CIS;有,转至外设C服务程序 2)位移法 MOV DX,380H IN AL,DX RCL AL,1 JC AIS RCL AL,1 JC BIS 采用查询中断,对应的中断输入线有一个固定的中断入口地址,进入中断服 务程序后首先就是查询中断源。查询的次序,即是优先权的次序,显然,最先被 查询的,优先权的级别最高。
前像素代码。
● FFFF0H 启动地址。一般用来存放一条无条件转移指令,转到系统
初始化程序。
1.中断原理 2.8086 CPU中断系统 3.可编程中断控制器8259A 4.PC/XT机的中断结构
第一节 中断和中断系统 1. 什么是中断
中断:是指CPU在正常运行程序时,由 于内部/外部事件或由程序预先安排的 事件,引起CPU中断正在运行的程序, 转去为该事件服务。服务完毕,再返回 去继续运行被暂时中断的程序的过程。 中断服务(处理) 程序、断点
3. 中断优先权
(1) 软件查询方式
●软件查询优先方式是最简单的中断优先处理方式。图6.5显 示了采用软件查询方式的接口电路。 保留现场 Y 外设A中断服务程序 Y 外设B中断服务程序 Y 外设C中断服务程序 图4 软件查询方式流程 图
A申请服务?
N B申请服务? N C申请服务? N 恢复现场
查询程序有屏蔽法和位移法两种安排方式。 1)屏蔽法 MOV DX,380H IN AL,DX;输入中断请求触发器的状态 TEST AL,80H;检查最高位(外设A)是否有请求 JNZ AIS;有,则转至外设A服务程序 TEST AL,40H;否,检查外设B是否有请求 JNZ BI5;有,转至外设B服务程序 TEST AL,20H;否,检查外设C是否有请求 JNZ CIS;有,转至外设C服务程序 2)位移法 MOV DX,380H IN AL,DX RCL AL,1 JC AIS RCL AL,1 JC BIS 采用查询中断,对应的中断输入线有一个固定的中断入口地址,进入中断服 务程序后首先就是查询中断源。查询的次序,即是优先权的次序,显然,最先被 查询的,优先权的级别最高。
前像素代码。
● FFFF0H 启动地址。一般用来存放一条无条件转移指令,转到系统
初始化程序。
《微机原理与接口》知识点第7章中断控制器8259

五、引入中断请求的方式
1、边沿触发方式
特点:将中断请求输入端出现的上升沿作为中断请求信号。
2、电平触发方式 特点:将中断请求输入端出现的高电平作为中断请求信号。
3、中断查询方式 特点: 1.外设通过向8259A发中断请求信号要求CPU服务。
2.CPU内部的中断允许触发器复位。
3.CPU使用软件查询来确认中断源。
第7章 中断控制器
7.1 8259A概述
7.2 8259A的引脚信号、编程结构和工作原理 7.3 8259A的工作方式 7.4 8259A的初始化命令字和操作命令字
7.5 8259A使用举例
第7章 中断控制器8259A 重点: 1、8259A的编程结构和工作原理 2、8259A的初始化命令字、操作命令字 3、8259A的初始化流程和初始化编程 4、8259A的应用
;×××10×11B ;设置ICW1 ;00011000B~ 00011111B ;设置ICW2 ;00000001B ;设置ICW4
三、8259A的操作命令字
1、OCW1 :中断屏蔽操作命令字
D7 M7 D6 M6 D5 M5 D4 M4 D3 M3 D2 M2 D1 M1 D0 M0 A0 1
中断 触发 方式
A0
0
是否设 置ICW4 规定单片或 级连方式
1:设置ICW4 0:不设ICW4
1:单片方式 0:级连方式
2、ICW2 :设置中断类型码初始化命令字
ICW2高五位与中断类型码的高五位相同。 注:该命令字必须写入“奇地址”端口,即A0=1。
3、ICW3 :标志主/从片初始化命令字
D7 D6 D5 D4 D3 D2 D1 D0
特点:发结束命令时,指令内不指定清除ISR中的哪一位, 由8259A自动将最高优先级对应的ISR中非零位复位,结 束当前正在处理的中断。 用于全嵌套方式。
第7章 (7-2)中断控制器8259

应用领域:非全嵌套方式下
方法: 使OCW2的 EOI=1, SL=1, R=0 L2,L1,L0 三位指出要对哪一个IS进行复位。
2020/5/14
30
4. 连接系统总线的方式
有两种方式。
(1)缓冲方式
• 8259A通过总线驱动器和CPU数据总线相连。 • SP/ EN作输出,作为总线驱动器的使能信号。 • 用于多片8259A的大系统中。 • 在初始化编程中指出主片、从片。
有多种结束方式
2020/5/14
26
(1)自动结束中断方式 (AEOI)
•当一个中断得到响应时,8259A在收到第二个中断响 应负脉冲后自动清ISR中的相应位。 •仅用于多个中断不会出现嵌套的单级系统中。
2020/5/14
27
(2)普通命令结束中断方式 (普通EOI)
•在中断处理程序返回前,CPU用输出指令向8259A发一个一般 (或叫普通)中断结束命令字EOI ,8259A将当前ISR中优先 级别最高的非零位(正在服务的最高优先级)清零。 • 若没有EOI 命令字,则ISR对应为仍维持1,同级或低优先级 的中断请求将不会得到响应。
2020/5/14
31
(2) 非缓冲方式
• 8259A直接和CPU数据总线相连。 • SP/ EN作输入。单片系统接“1”,多片系统
则主接“1”,从接“0”。
2020/5/14
32
5. 引入中断请求的方式
(1) 边沿触发方式 通过ICW1来设置。
2020/5/14
33
(2) 电平触发方式 通过ICW1的控制位设置。
D7,D6,D5在8086系统中无意义
2020/5/14
无意义
1:单片 0:级联
方法: 使OCW2的 EOI=1, SL=1, R=0 L2,L1,L0 三位指出要对哪一个IS进行复位。
2020/5/14
30
4. 连接系统总线的方式
有两种方式。
(1)缓冲方式
• 8259A通过总线驱动器和CPU数据总线相连。 • SP/ EN作输出,作为总线驱动器的使能信号。 • 用于多片8259A的大系统中。 • 在初始化编程中指出主片、从片。
有多种结束方式
2020/5/14
26
(1)自动结束中断方式 (AEOI)
•当一个中断得到响应时,8259A在收到第二个中断响 应负脉冲后自动清ISR中的相应位。 •仅用于多个中断不会出现嵌套的单级系统中。
2020/5/14
27
(2)普通命令结束中断方式 (普通EOI)
•在中断处理程序返回前,CPU用输出指令向8259A发一个一般 (或叫普通)中断结束命令字EOI ,8259A将当前ISR中优先 级别最高的非零位(正在服务的最高优先级)清零。 • 若没有EOI 命令字,则ISR对应为仍维持1,同级或低优先级 的中断请求将不会得到响应。
2020/5/14
31
(2) 非缓冲方式
• 8259A直接和CPU数据总线相连。 • SP/ EN作输入。单片系统接“1”,多片系统
则主接“1”,从接“0”。
2020/5/14
32
5. 引入中断请求的方式
(1) 边沿触发方式 通过ICW1来设置。
2020/5/14
33
(2) 电平触发方式 通过ICW1的控制位设置。
D7,D6,D5在8086系统中无意义
2020/5/14
无意义
1:单片 0:级联
第7章中断控制器8259An共104页文档

第7章 中断控制器
❖ 中断控制器的功能:接收外部的中断请求,进行 判断,选中优先级最高的中断请求,送到CPU的 INTR端;CPU响应中断进入中断子程序时,负责 对外部中断请求管理,可实现中断嵌套。
第7章 中断控制器
❖ 7.1 8259A的引脚信号、编程结构和工作原理 ❖ 7.2 8259A的工作方式 ❖ 7.3 8259A的初始化命令字和初始化流程 ❖ 7.4 8259A的操作命令字 ❖ 7.5 8259A的使用举例 ❖ 7.6 多片8259A组成的主从式中断系统
方法:ICW4中AEOI位为1。
2020/5/24
2)一般中断结束方式
❖ 配合全嵌套优先权方式使用。 ❖ 当CPU用输出指令往8259A发出一般中断
结束命令(EOI)时,8259A就会把当前 中断服务寄存器优先权最高的IS位复位。
2020/5/24
3)特殊中断结束方式
❖ 配合非全嵌套方式使用。 ❖ CPU在程序中向8259A发送一条特殊中断
中断服务寄存器ISR
保存正在被8259A服务着的中断状态 Di位为1表示IRi中断正在服务中;为0表示没有被服务
中断屏蔽寄存器IMR(OCW1)
保存对中断请求信号IR的屏蔽状态 Di位为1表示IRi中断被屏蔽(禁止);为0表示允许
2020/5/24
7. 2 8259A的工作方式
1. 设置优先级的方式 (1) 全嵌套方式 (2) 特殊全嵌套NTA IR4
IR5 INT IR6
IR7 SP/EN
7.1 8259A的引脚信号、编程结构和工作原理
1. 8259A的外部引脚信号:
① D7~D0 数据线 ② INT 中断请求信号 ③ INTA# 中断应答信号 ④ RD# 读出信号 ⑤ WR# 写入信号 ⑥ CS# 片选信号 ⑦ A0 端口选择信号 ⑧ IR7~IR0 I/O中断请求信号 ⑨ CAS2~CAS0 从片选择信号 ⑩ SP#/EN# 主片和从片的选择和驱动信号
❖ 中断控制器的功能:接收外部的中断请求,进行 判断,选中优先级最高的中断请求,送到CPU的 INTR端;CPU响应中断进入中断子程序时,负责 对外部中断请求管理,可实现中断嵌套。
第7章 中断控制器
❖ 7.1 8259A的引脚信号、编程结构和工作原理 ❖ 7.2 8259A的工作方式 ❖ 7.3 8259A的初始化命令字和初始化流程 ❖ 7.4 8259A的操作命令字 ❖ 7.5 8259A的使用举例 ❖ 7.6 多片8259A组成的主从式中断系统
方法:ICW4中AEOI位为1。
2020/5/24
2)一般中断结束方式
❖ 配合全嵌套优先权方式使用。 ❖ 当CPU用输出指令往8259A发出一般中断
结束命令(EOI)时,8259A就会把当前 中断服务寄存器优先权最高的IS位复位。
2020/5/24
3)特殊中断结束方式
❖ 配合非全嵌套方式使用。 ❖ CPU在程序中向8259A发送一条特殊中断
中断服务寄存器ISR
保存正在被8259A服务着的中断状态 Di位为1表示IRi中断正在服务中;为0表示没有被服务
中断屏蔽寄存器IMR(OCW1)
保存对中断请求信号IR的屏蔽状态 Di位为1表示IRi中断被屏蔽(禁止);为0表示允许
2020/5/24
7. 2 8259A的工作方式
1. 设置优先级的方式 (1) 全嵌套方式 (2) 特殊全嵌套NTA IR4
IR5 INT IR6
IR7 SP/EN
7.1 8259A的引脚信号、编程结构和工作原理
1. 8259A的外部引脚信号:
① D7~D0 数据线 ② INT 中断请求信号 ③ INTA# 中断应答信号 ④ RD# 读出信号 ⑤ WR# 写入信号 ⑥ CS# 片选信号 ⑦ A0 端口选择信号 ⑧ IR7~IR0 I/O中断请求信号 ⑨ CAS2~CAS0 从片选择信号 ⑩ SP#/EN# 主片和从片的选择和驱动信号
第七章--中断系统和中断控制器8259APPT课件

中断源随机发出中断请求信号,CPU 在现行指令周期结束时,才检测有 无中断请求。
发出中断请求的条件:外部设备已准 备好,且该外设的中断请求没有被 系统评屏蔽。
-
5
2. 中断排队和中断响应
概念:CPU接收到中断请求后,从 中止现行程序到转向中断服务程序 入口的过程,称为中断响应。
条件:
1)中断是开放的;
中断类型号×4——该中断向量在表中 起始单元的地址。
寻找4个连续存储单元,获得IP及CS
-
25
17H*4=90H IP
46 00H
CS 3B A4H
例 n=24H
00H 46H A4H 3BH
0000:0090H 0000:0091H 0000:0092H 0000:0093H
中断处理子程序
3BA4:4600H
1) AH中预置功能号25H;
2) AL中预置中断类型码; 3 ) DS:DX中预置中断服务程序的人口地址 (段地址和偏移地址分别置人DS和DX)。 预置完以上参数后,执行INT21H指令就可把 中断服务程序的人口地址置人中断向量表 中适当的位置。
-
29
例7-2 设中断服务程序的人口地址为INTSUB,
1)AL中预置入中断类型码;
2)AH中预置入功能号35H。
执行INT21H指令,ES和BX中分别是中断 服务程序入口地址的段地址和偏移地址。
-
31
7.2.4 8086/8088的中断处理过程
中断处理过程包含:中断请求、中断 排队、中断响应、中断服务和中断返 回。
1. 中断响应条件,有内部中断发生或 NMI /INTR引脚上有效中断请求信号 且IF=1时,待CPU执行完当前指令后 方能响应中断。
发出中断请求的条件:外部设备已准 备好,且该外设的中断请求没有被 系统评屏蔽。
-
5
2. 中断排队和中断响应
概念:CPU接收到中断请求后,从 中止现行程序到转向中断服务程序 入口的过程,称为中断响应。
条件:
1)中断是开放的;
中断类型号×4——该中断向量在表中 起始单元的地址。
寻找4个连续存储单元,获得IP及CS
-
25
17H*4=90H IP
46 00H
CS 3B A4H
例 n=24H
00H 46H A4H 3BH
0000:0090H 0000:0091H 0000:0092H 0000:0093H
中断处理子程序
3BA4:4600H
1) AH中预置功能号25H;
2) AL中预置中断类型码; 3 ) DS:DX中预置中断服务程序的人口地址 (段地址和偏移地址分别置人DS和DX)。 预置完以上参数后,执行INT21H指令就可把 中断服务程序的人口地址置人中断向量表 中适当的位置。
-
29
例7-2 设中断服务程序的人口地址为INTSUB,
1)AL中预置入中断类型码;
2)AH中预置入功能号35H。
执行INT21H指令,ES和BX中分别是中断 服务程序入口地址的段地址和偏移地址。
-
31
7.2.4 8086/8088的中断处理过程
中断处理过程包含:中断请求、中断 排队、中断响应、中断服务和中断返 回。
1. 中断响应条件,有内部中断发生或 NMI /INTR引脚上有效中断请求信号 且IF=1时,待CPU执行完当前指令后 方能响应中断。
【微机原理】第7章中断控制器8259A微课

看 书
接
中
听
断 请
电
求
继续
话
中断响应
看书
这个例子就表现了中断及其处理过程。 中断处理
7.1.1 中断方式的提出
日常生活中中断的实例
为了说明这个问题,再举一例: 在厨房用煤气烧一壶水,必须要做的是水烧开后
及时关掉煤气灶,否则水溢出来浇灭了煤气,就有可 能要发生一场灾难。为了这么个一秒钟就能完成的动 作,你必须在水快开的时间里不停的看壶嘴是不是冒 蒸汽,什么事也干不了。
(TYPE×4) → IP (TYPE×4+2)→ CS
如 INT指令执行过程
[例] 设CS=1000H,SS=2000H,IP=3000H, SP=3000H,指令
INT 30H 的执行过程如图所示。
00H 000C0H
40H 000C1H
00H 000C2H
CS 1000H
INT30H 机器码
7.1.1 中断方式的提出
计算机执行程序中的中断 主程序 中断响应
中断请求 断点
中断服 务子程 序
主程序
中断返回
7.1.1 中断方式的提出
计算机执行程序中的中断
在计算机中执行程序(主程序)的过程中,由 于出现某个特殊情况(或称为“中断事件”),使得 暂时中止现行程序(主程序),而转去执行处理这一 事件的处理程序(中断服务程序),处理程序(中断 服务程序)执行完毕之后再回到原来程序(主程序) 的中断点继续向下执行,这个过程就是中断。
7.1.2 中断的功能
中断技术的功能
(1)实现CPU与外设并行及分时操作。 ※并行操作----是指CPU和多个外设并行工作。 ※分时操作----是指CPU可以分时执行多个用户程 序和多道作业。
微机原理与接口技术_07可编程中断控制器8259A.概要

2019/1/3
15
7.4 8259A的编程
2019/1/3
16
7.4.1 初始化编程
• 8259A是可编程的中断控制器,8259A是按照事先设置好 的命令字进行工作的。8259A的命令字分为两部分,一部 分是初始化命令字(Initialization Command Word, ICW )ICW1~ICW4,另一部分是操作命令字(Operation Command Word, OCW)OCW1~OCW3。8259A有2 个内部端口地址,一个偶地址(A0=0),另一个是奇地 址(A0),用来选择不同的寄存器。
2019/1/3
9
7.3 8259A的工作方式
2019/1/3
10
7.3.1 中断优先级管理方式
• 1.固定优先级方式(完全嵌套排序方式) • 固定优先级方式是 8259A最常用的一种工作方式。优先 级的次序固定:IR0>IR1>…> IR7。 • 2.自动循环优先级方式(等优先级方式) • 在自动循环优先级方式下,任何一级中断处理完后, CPU都会向8259A发送EOI命令,使ISR中最高优先级位 复位,并且使它变为最低优先级,比它低一级的中断请 求设为最高级,就这样依次循环下去。
第
7章 可编程中断控制器
8259A
1
2019/1/3
本章主要内容
7.1 8259A的基本结构 7.2 8259A芯片的工作过程 7.3 8259A的工作方式 7.4 8259A的编程 7.5 8259A的应用
2019/1/3
2
7.1 8259A的基本结构
2019/1/3
3
7.1.1 内部结构
2019/1/3
第7章 中断控制器

全嵌套方式
8259A在初始化工作完成后若未设定其它的工作方式, 在初始化工作完成后若未设定其它的工作方式, 在初始化工作完成后若未设定其它的工作方式 就自动进入全嵌套方式 全嵌套方式特点 特点: 全嵌套方式特点: 1、中断请求的优先级固定,其顺序是 优先级固定, 最高,逐 、中断请求的优先级固定 其顺序是IR0最高 逐 最高 次减小, 次减小,IR7最低 最低 2、中断服务寄存器 、中断服务寄存器ISR保存优先权电路确定的优先 保存优先权电路确定的优先 级状态,相应位置“ ,并且一直保持这个服务“记录” 级状态,相应位置“1”,并且一直保持这个服务“记录” 状态,直到CPU发出中断结束命令为止 状态,直到 发出中断结束命令为止 3、在ISR置位期间,不再响应同级及较低级的中断 置位期间, 、 置位期间 请求,而高级的中断请求如果CPU开放中断的话仍能够得 开放中断的话仍能够得 请求,而高级的中断请求如果 到中断服务 4、IR7~IR0的中断请求输入可分别由中断屏蔽寄存 、 的中断请求输入可分别由中断屏蔽寄存 的相应位屏蔽与允许, 器IMR的D7~D6的相应位屏蔽与允许,对某一位的屏蔽 的 的相应位屏蔽与允许 与允许, 与允许,操作不影响其它位的中断请求操作 全嵌套工作方式由ICW4的D4=0来确定 全嵌套工作方式由 的 来确定 17
10
可编程中断控制器8259A 第二节 可编程中断控制器 1. 8259A的引脚 的引脚 2. 8259A的中断顺序 的中断顺序 3. 8259A的编程 的编程 4. 8259A的工作过程 的工作过程
11
8259A中断控制器 中断控制器
Intel 8259A是可编程中断控制器 是可编程中断控制器PIC 是可编程中断控制器 可用于管理Intel 8080/8085、 可用于管理 、 8086/8088、80286/80386的可屏蔽中 、 的可屏蔽中 断 8259A的基本功能 的基本功能
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中断请求不受中断允许标志IF状态的影响,在当前指令执 行完后,CPU就响应。 非屏蔽中断用于较重要、紧急的中断请求。
2、可屏蔽中断
——中断类型码 n 由申请中断的中断源提供。 可屏蔽中断请求由INTR引脚送入。所谓可屏蔽,指该中 断请求须由中断允许标志IF的状态决定其是否被CPU响应。 IF的设置可由指令实现。 STI CLI ;IF=1,允许中断 ;IF=0,禁止中断
(3)中断服务及中断返回
在中断服务程序中,需做以下事情 1)保护现场 ——保护有关寄存器的内容;(如压入堆 栈保护) 2)开中断——(IF←1)为了实现中断的嵌套;
3)中断处理服务 ——对中断源作相应的处理。例如进 行数据传送等。这是服务程序的实质性环节。
4)关中断——为恢复现场做准备;
5)恢复现场;
图 7-1 中断服务程序的结构
7.1.3 中断优先权管理
——将中断源按轻重缓急排队,确定各中断优先权次序。 优先权管理是指判别和确定各中断源的中断优先权次序。
中断优先权判别方法有两种: 软件排队和硬件排队
1. 软件排队 ——用软件查询哪个中断源有中断请求,先查询到的 先响应。即:查询次序确定各中断优先权次序,先查询的 优先权最高。
当IF=1,INTR有效时,CPU将送出中断响应信号 INTA 。 中断源接到该信号,将其中断类型码送给CPU。
7.2.3 中断向量表
1、中断向量表 中断向量即中断服务程序的入口地址(首地址) ,用32 位逻辑地址表示。中断向量表是一个存储区,该存储区存放所 有中断向量。 表内容:所有中断服务程序的入口地址,即256个中断向量。 表长度:一个中断向量4个字节,256个中断向量共256×4= 1024字节,即占用1K存储空间。 表位置:在0段内偏移地址为0000~03FFH的范围内,即实际 地址为00000~003FFH。 存放次序:按中断类型码从小到大依次存放。每个中断向量 占用的 4 个单元中,小地址的存放偏移地址,大地址的存放 段地址。
7.1.2
中断处理过程
中断请求→中断排队 →中断响应→中断服务→中断返回
(1)中断请求 ——中断源向CPU发出的请求中断服务的信号。 必须满足条件: ●中断源已准备好; ●系统允许该中断源发出中断信号。 设置中断屏蔽触发器加以控制 中断屏蔽触发器=1,允许向CPU申请中断。 中断屏蔽触发器=0,禁止向CPU申请中断。 中断请求信号是随机发生的,因此,CPU一般隔一定时 间检测一次中断请求信号确定是否有中断请求。
1)接口电路
INTR
或 门 中断A 中断B 中断C
D0~D7 IOR A0~A15 译码
三态 缓冲器
锁 存 器
…
…
或 门
80H
2)查询程序
IN AL,80H TEST AL,80H JNZ ASEV;转A服务程序
3)特点:方法简单,硬件 电路省,但中断源多时, 查询速度慢,影响中断响 应速度。
TEST AL,40H
5.
软件中断——中断类型码 n由用户定义 以软中断指令INT n方式实现中断服务程序,5≤n≤255 。
其中5 ~3FH为系统备用中断,一般不允许用户改作其它用 途,如系统功能调用INT 21H。
40H~FFH为用户可用的中断,用户可自行设计一些中断服 务程序,这与调用子程序相似。
7.2.2.2 外部中断
(3)中断系统 ——实现中断功能的控制逻辑与管理软件称为中断系统。 不同的微型计算机的中断系统虽然各不相同,但中断系统 的基本功能是相同的。 中断系统应具备的功能: ◆中断源的识别、响应及返回——完成一次中断过程;
◆中断优先权排队——给中断源按轻重缓急排队;
◆中断嵌套—— 优先权高的中断源能中断优先权低的中断处 理。
第7章 中断系统和中断控制器8259A
主要内容
1. 中断的基本概念 2. 8086系统的中断系统 3. 中断控制器8259A及应用
学习要点:
1.掌握8086内部中断的特点;
2.掌握中断的基本概念,掌握对外部中断响应的区别; 3.深刻理解中断类型码、中断矢量和中断向量表的概念,以及如何对 中断服务程序寻址; 4.了解8259A的编程结构,理解8259A工作方式、掌握8259有关命令和 初始化编程及其应用方法。
7.2 8086/8088的中断系统
8086/8088具有功能很强的中断系统,能够处理256个中断源。
7.2.1
8086/8088的中断指令
单字节,n固定为3
SS:SP-2 SS:SP-2 SS:SP-2 SS:SP
--ZZ ZZ YY YY X X X X ?-…
IPL IPH CSL CSH RFL RFH
7.1 中断的基本概念
7.1.1 中断及中断源
(1)中断——由于外设的请求或某事件的发生使CPU暂停
执行现行程序,转去执行处理相应请求或事件的中断服务程 序,处理完毕再返回运行原程序,这样的过程为中断。 (2)中断源——能够引起中断的事件。 中断源: ◆一般的I/O设备。如键盘、打印机等; ◆数据通道中断源。如磁盘、磁带机等; ◆实时时钟 ; ◆故障引起的中断 。如电源掉电; ◆中断指令或软件故障。如系统功能调用、除数为0等。
7.2.2.1 内部中断
内部中断是通过软件指令或软件陷阱而调用的非屏蔽中 断(指不受IF状态影响),这是由程序运行的状态和指 令代码执行后自动启动而不是由外界中断请求来调用的。 内部中断按其性质又可分为软件陷阱和软件中断: 软件陷阱——在某些指令执行期间FR的标志位满足设定 的条件或CPU的状态符合某种情况从而触发CPU内部逻辑去启 动所需要的中断服务子程序,如除法出错中断和单步中断。 软件中断——通过指令来调用中断服务子程序。
1. 中断指令
格式: INT n 或 INT; n=0~255,为中断类型码。
功能:SP←SP-2,SS:[SP]←RF IF←0,TF←0 SP←SP-2,SS:[SP]←CS, SP←SP-2,SS:[SP]←IP IP←0:[n*4] CS←0:[n*4+2]
0000:n*4 AA
IPL IPH CSL CSH
JNZ BSEV;转B服务程序 ……
2. 硬件排队 1)链式排队电路 如:
INTR1
5V
2)优先权编码电路
INTR2
INTR3
IEI
IEO
IEI
IEO
IEI
IEO
作用: (1)能够送出当前有中断请求的中断源中优先权最高的中 断请求。 (2)当一个中断源的中断请求被CPU响应后,比它低优先 权的中断源被屏蔽。
1. 除法出错中断——中断类型码n= 0
在执行除法指令时,若除数为0或商超过了寄存器所能表达的范围,则产 生一个类型号为0的内部中断,称为除法错中断。
注意点:除法错误中断是由内部电路自动生成的,没有对应的中断指令。
2. 单步中断——中断类型码 n=1
为了用户调试上机的方便,当TF=1时,则在每执行一条指令后,可 以产生一个类型号为1的中断。 在中断处理程序的控制下,可以给出有关寄存器的内容或状态标志 位的状态,以便了解程序的执行情况。 例如:DEBUG.EXE调试程序的单步命令T 就利用单步中断实现对 程序的单步调试
3.断点中断——中断类型码n= 3
断点中断也是提供给用户的一种程序调试手段。在相应的程序语句后 设置断点,就可以使程序运行一段后进入断点中断,检查程序是否达到要 求。实现分段落调试程序。
4. 溢出中断——中断类型码 n=4
溢出中断是通过INTO中断指令实现的,该指令跟在有符号数的算 术运算指令以后在执行溢出中断指令INTO时,若溢出标志OF为1,则产 生一个向量号为4的内部中断。并转入溢出中断处理。 例:MOV BL,126 MOV AL,5 ADD AL,BL →执行到此指令后,将OF置1 INTO →执行到此产生中断
(IP) ← ((SP+1),(SP)) , (SP)←(SP)+2
(CS)← ((SP+1),(SP)) , (SP)←(SP)+2 (FR)← ((SP+1),(SP)) , (SP)←(SP)+2
指令执行后 (SP)=(SP)+6
7.2.2 8086/8088的中断分类
8086/8088的中断系统采用向量中断方法,能够处理256 个中断,用中断向量号0~255区别。 中断系统有如下分类: 可屏蔽中断: 从CPU的INTR 引脚输入,受 中断允许标志 IF状态影响; 非屏蔽中断: 从CPU的NMI引 脚输入。
(2)中断排队及中断响应
——系统中有多个中断源,当两个以上中断源同时向 CPU发出中断请求信号,则CPU能先响应重要的、紧急的中断,
即优先权高的中断源。这就是中断排队的工作。
中断响应是指CPU在接到中断请求信号后,确定可以响
应时自动完成的操作:
①发中断响应信号 ,同时内部关中断(IF←0),以禁 止其它可屏蔽中断请求; ② 保护断点——程序断点处的CS、IP内容压栈,以便 中断处理完后能正确地返回主程序; ③ 保护现场—— 保护标志寄存器 F 的内容; ④ 中断识别并形成中断服务程序入口地址——使段地 址→CS ,偏移地址→IP,转入中断服务程序执行。
6)中断返回——中断返回指令使得CPU自动地将堆栈中 保存的F 和程序断点处的CS、IP值弹到F、CS、IP中,使CPU 返回主程序断点处继续执行主程序,同时中断返回指令使得 IF自动恢复响应中断前的开中断状态。
中断服务程序框图:
保护有关寄存器内容
开中断 中断处理 关中断
恢复有关寄存器内容
中断返回
地址 00114H 00115H 00116H 00117H 00118H 存储单元内容 20H 10H 00H 34H
量表的设置
中断向量表的设置——将中断源的中断向量存入中断向 量表对应的位置。 方法一 ——用系统功能调用设置。