微机原理--第八章-中断系统

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
❖ 由CPU内部产生 (如被零除操作),或者由程序预先安排,即 由指令调用中断服务程序。(称软件中断或内部中断)
…… MOV AH, 01 INT 21H CMP AL, 0Dh …… PUSH AX …… IRET
用指令调用中断程序 1000:150H
7.2 8086/8088中断系统
一、8086/8088CPU的中断分类 二、8086/8088CPU的中断优先权 三、中断类型与中断向量表 四、 8086/8088CPU响应中断的过程 五、 8086/8088CPU如何获取中断类型号
五、中断隐操作和中断向量
CPU响应中断时,首先执行一系列由硬件安排的处理过程, 称为中断隐操作。隐操作把CPU引向中断服务程序。
中断服务程序的第一个可执行语句所在的地址叫中断向量, 在CPU响应硬件中断时,这个中断向量是由中断源硬件提供给 CPU的。
六、断点和中断现场 断点:是指CPU执行的现行程序被中断时的下一条指令的地址, 又称断点地址。 中断现场:是指CPU转去执行中断服务程序前的运行状态,包 括CPU内部各寄存器、断点地址等。
①当INTR上有高电平信号(可屏蔽中断)
②当NMI上有上升沿信号(非屏蔽中断)
• 可屏蔽中断 – 由INTR引脚引起的中断,称可屏蔽中断。 – CPU是否响应INTR引脚上的中断请求取决于IF标志: • IF=1,CPU响应INTR引脚上的中断请求 • IF=0,CPU不响应INTR引脚上的中断请求 – 即当IF=0时,将INTR引脚上的中断申请屏蔽。
除法出错 单步跟踪 断点中断 溢出中断
内部软件中断:INT n
8086/8088中断系统结构
非屏蔽中断请求
NMI
CPU
中断逻辑
INTn INTO 除法 单步 指令 指令 错误 TF=1
INTR
IR 0 08 系统定时器
IR 1 09 键盘
INT
IR 2
8259A IR 3
0A彩色/图形接口 0B 保留(通信)
不同的中断源,8086CPU获取中断类型号的方法不同。
①CPU 执行除零或 OF 为 1 执行 INTO 指令
除零

OF 为 1 执行 INTO 指令
固定类型号 00H 固定类型号 04H

②使用 DEBUG 下的单步和断点操作
单步
固定类型号 01H
断 断点 ③执行中断调用指令 INT N
固定类型号 03H
7.3 可编程中断控制器8259A
7.3.1 8259A的主要特性
➢ 8259A的改进工艺制造,内部结构和外部引脚与 8259A完全兼容。 ➢ 单一正5V电源,全静态工作(无需外加时钟)。 ➢ 该芯片集中断源识别、判优、提供中断类型号于一体。 ➢ 每片82C59A能管理8级中断(含优先级)。 ➢ 每片82C59A可送出8个8位的中断类型号(自动中断向 量转移功能)。 ➢ 能用软件屏蔽中断请求输入,通过编程可选择多种不同 的工作方式,以适应各种系统的要求。 ➢ 通过82C59A级联,在不增加外部电路的情况下,最多 可用9片82C59A级连管理64级中断。
8086中断响应周期时序
CLK
第 一 个中断
第 二 个中
响应周期 三个空闲状态 断响应周期
T1 T2 T3 T4 TI TI TI T1 T2 T3 T4
ALE INTA
AD7~AD0
中断类型
CPU从引脚INTA发中断响应信号,接口芯片接收此信号, 把中断类型号准备好;同时ISRi=1,IRRi=0。 CPU再从引脚INTA发中断响应信号,接口芯片接此信号后, 将中断类型号送至数据总线上; CPU从数据总线获取中断类型号。
01
0
CA1 CA2
VCC
OCW3特殊屏蔽,查询方式设置
控制部分 GND
总线
D0 ~ D7 IOR IOW
A0
A5 ~ A9 INTA INTR
7.3.3 82C59A外部特性(引脚功能)
数据线
片 选 20~3FH 译 码
8259A
Vcc
D0 ~ D7 RD WR A0
CS
INTA INT
IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7
01
ICW4 方式控制
OCW3
控制部分
(1)初始化命令字(ICW1- ICW4)书上147页 它决定8259A的工作方式,通常是在计算机系统启动时在初始
程序设置,一旦设定,一般在系统工作过程不再改变。 例:开机后,BIOS将8259A初始化为: ① IR0~IR7中断申请信号为上升沿触发方式; ② IR0~IR7对应的中断类型号分别为08H~0FH; ③ 优先级IR0最高, IR7最低;
(2) 操作命令字(OCW1,OCW2,OCW3) 在应用程序中设定,动态地控制CPU处理中断的过程
(3) ISR和IRR存放当前8259A的状态 通过读取 ISR 和 IRR 的内容,可了解当前8259A工作情况
7.3.5 8259A的工作方式
1、中断屏蔽方式 2、中断嵌套方式 3、设置优先级的方式 4、中断结束方式 5、查询中断方式 6、读取状态方式 7、级联方式 8、连接系统总线的方式
SP/EN CA0 CA1 CA2
GND
+ 5V
电子钟时间基准
键盘 保留 串 口2 串 口1 硬盘 软盘 打印机
用于多片 8259A
级连情况
7.3.4 8259A的控制字
8259A中断控制器
处理部分
0
ISR 0
当前 0
中断 0
服务 0
寄存器
0 0
0
IRR
中断申请
0 0
寄存器 0
0
PR
0
优先级
0
裁决器
取中断子程 入口地址
当前指令执行完的含义
CPU正在执行一条指令,执行完本条指令,响 应中断;
对于带重复前缀的串指令(如REP MOVSB), 执行一次重复和串指令即可响应中断;
对MOV和POP指令,处理对象为段寄存器,以 及STI和IRET指令执行完本条指令后,再执行一条 指令才响应中断。
五、8086CPU如何获取中断类型号?
三、中断请求与中断屏蔽 中断请求 :当中断源要求CPU为其服务时,必须先向CPU提 出申请,这是通过发出中断请求信号实现的。 中断屏蔽 :系统中的大部分中断源是可屏蔽的,称为可屏 蔽中断,而个别的中断请求是不能被屏蔽的,称为非屏蔽中断
四、中断服务程序 所谓中断服务程序,就是为完成中断源所期望的功能而编 写的程序。
1000:150H
……
MOV ADD MOV
……
PUSH
…… IRET
AX,0 AX,DX [DI], AX
AX
CPU在执行此指令时, 某中断源发申请中断; CPU在执行完该指令后,
转去执行中断子程.
地址1000:150H为断点
七、硬件中断和软件中断
❖ 为了解决CPU与外设间的速度匹配问题,提高CPU 的工作效率。 中断源主要是由外部硬件产生。(称硬件中断或外部中断)
第7章 中断技术
7.1 中断技术概述 7.2 8086/8088中断系统 7.3 可编程中断控制器8259A 7.4 中断程序设计
7.1 中断技术概述
一、什么是中断 二、中断源及其中断优先权 三、中断请求与中断屏蔽 四、中断服务程序 五、中断隐操作和中断向量 六、断点和中断现场 七、硬件中断和软件中断
0 0
8259A的编程结构内部有9个 可读写的寄存器: ➢ 4个初始化命令寄存器:
ICW1、ICW2 ICW3、ICW4 ➢ 3个操作命令寄存器
ICW1 芯片控制
1 × I3 I4
ICW2 中断类型号
ICW3 主从片关系
OCW1
10010100
中断屏蔽寄存器 IMR
00
OCW2
OCW1(IMR) OCW2、OCW3 ➢当前中断服务寄存器 ISR ➢中断申请寄存器 IRR
裁决器
0
IR6
0
IR7
选 CS 译 码
RD
WR
INTA INT
ICW1 芯片控制 A0
A0
1 × I3 I4 0 1 0 0 1 0 1 0 0 1
ICW2 中断类型号 1
ICW3 主从片连接关系
1 ICW4 方式控制
1
OCW1 中断屏蔽寄存器 IMR
00
0
SP/EN
CA0
OCW2 优先级设置、发EOI
IR4 0C串行通信接口
IR 5 0D保留(ALT打印机)
IR6 0E 软盘
IR 7 0F 保留(打印机)
二、8088CPU的中断优先权
• 优先级
•高

•低
• 内部中断 ( 除零,INT n,断点,INTO指令 ) • 非屏蔽中断 • 可屏蔽中断
内部中断( 单步 )
当有多个中断源同时产生中断申请时,CPU先响应 优先权最高的中断源,再响应优先级较低的中断源。
一、什么是中断? 在CPU正常运行程序时,由于内部或外部某个非预料事件的发生, 使CPU暂停正在运行的程序,而转去执行处理引起中断事件的程序, 然后再返回被中断了的程序,继续执行。这个过程就是中断。
非预料事件1
中断服务程序1
非预料事件2
CPU执行流程
中断服务程序2
二、中断源和中断优先权 引起中断的因素很多,将发出中断申请的外设或内部原因, 称为中断源。 给每个中断源指定一个优先权,称为中断优先权,当多个 中断源同时发出中断请求时, CPU按照中断优先权的高低顺 序,依次响应。
三、中断类型与中断向量表
8086/8088的每个中断源都被指定了一个编号,称为中断类 型号。
每一个中断服务程序都有一个唯一确定的入口地址,叫做中断 向量。
把系统中所有的中断向量集中起来,按中断类型号从小到大的 顺序放到存储器的某一个区域内,这个存放中断向量的存储区叫 中断向量表。8086/8088CPU以存储器的00000H~0003FH共 1024个单元作为中断向量存储区,由于每个中断向量占用4个存 储单元(CS的内容占两个单元,IP的内容占两个单元),故这个 向量表中可存放256个中断类型的中断向量(即8086/8088CPU 的中断系统最多能处理256个中断源) 中断类型号所对应的中断向量在中断向量表中的地址等于:
中断类型号×4
四、8088CPU响应中断的过程
Biblioteka Baidu
当中断源产生中断申请后,不论是内中断、非屏蔽中断, 还是可屏蔽中断,只要满足响应条件,在执行完当前指令后, CPU内部硬件会自动完成下列响应中断的过程:
① 取中断类型号N ② 当前PSW的内容入栈 ③ 清IF、TF标志为0 ④ 当前CS的内容入栈 保存现场 ⑤ 当前IP的内容入栈 ⑥ 取内存单元(0:N×4 )字内容送IP ⑦ 取内存单元( 0 : N ×4 + 2 )字内容送CS
• 非屏蔽中断 – 由NMI引脚引起的中断,称非屏蔽中断。 – 当NMI引脚上产生上升沿信号,CPU必响应此中断请 求,即NMI引脚上的中断请求不受IF标志的控制, – IF不能屏蔽NMI引脚上的中断请求。
8086/8088CPU的中断分类图
中断源
外部中断 内部中断
非屏蔽中断 可屏蔽中断 内部硬件中断
7.3.2 8259A的内部结构
总线 D0 ~ D7 A0 A5 ~ A9
IOR IOW INTA INTR
处理部分
数 据 线 D0 ~ D7
ISR 当前 中断
0 0 0 0
服务 0
A0
寄存器 0
0

0
0
IRR 中断
0 0
申请 0
PR 寄存器 0
IR0 IR1 IR2 IR3 IR4
优先级
0
IR5
上有中断申请,则将IRR相应位置1;
总线
D0 ~ D7 A0
A5 ~ A9
IOR IOW INTA INTR
数据线 D0 ~ D7
A0
ISR 0
当前 0
中断 服务
见书上151页
8259A的工作过程
分两步: (1)处理外设中断申请,决定是否向CPU发中断申请信号。 (2)若发中断申请信号,且CPU响应,则在CPU中断响应周期
送出中断类型号。
(1)处理外设中断申请,决定是否向CPU发中断申请信号. ①中断申请寄存器IRR 锁存外部的中断申请。若IR0~IR7引脚
一、 8086/8088CPU的中断分类
按中断源的不同,中断分为内部中断和外部中断。 1、内部中断(软中断):指CPU执行某些特殊操作或 由INT指令引起的中断
① 被零除操作或OF=1时执行INTO指令引起
② 使用DEBUG中的单步或断点设置操作引起
③ 执行INTn 指令引起
2、外部中断(硬中断):指外部芯片通过CPU的INTR 引脚或NMI引脚发出中断申请引起的中断。
由指令中给出
指令中指定类型号 N
①非屏蔽中断
外 引脚 NMI 上有中断申请信号(上升沿信号)
非屏蔽中断
固定类型号 02H
中 ②可屏蔽中断(参看中断响应时序图)

当 IF=1,引脚 INTR 上有中断申请信号(高电平信号) CPU 按中断响应周期时序,从数据总线上获取中断类型号
可屏蔽中断
外部接口送上类型号
相关文档
最新文档