第3章-1中断及中断处理过程

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

图6 中断响应时CPU查询中断源的顺序
3.3.4
中断响应过程
获得中断类型号 保护状态标志 屏蔽新的INTR中断和单步中断 保存断点信息 根据中断类型,获得中断服务程序的入口地址 进入中断服务程序 CPU无需执行响应周期去获取中断类型码 除单步中断外,内部中断无法用软件禁止 内部中断没有随机性
② 可屏蔽中断
当INTR引脚出现高电平,表示有可屏蔽中断请求 只有在IF=1时,CPU才响应此中断 CPU响应后,会执行两个响应周期,分别送两个INTA 负脉冲信号,以获得该中断源的中断类型码
3.3.2
中断向量表
中断向量:中断服务程序的入口地址。 8086(88)在内存的最低1K字节建了一个中断向量 表,用以存放256个中断类型的中断向量(中断服 务程序的地址) 存放方法:每个中断向量占4个字节,前2个字节是 IP,后两个字节是CS。按中断向量码的序号排列.
2、内部中断源
CPU执行指令产生的异常 执行INT 软件中断指令
2、内部中断
软件中断 没有随机性,类似于普 通子程序的调用
3.1.2
→中断返回 1、中断请求
中断处理过程
中断请求—→中断优先级判定—→中断响应—→中断处理—
①信号形式应满足CPU要求。
②中断请求信号应被有效地记录,以便
3-1
中断及中断处理过程
所谓中断是指某事件的发生引起CPU暂停当前程序的运行, 转入对所发生事件的处理,处理结束又回到原程序被打断处 接着执行这样一个过程。
3-1
中断及中断处理过程
中断分类 1、外部中断
硬件中断 具有随机性 分为 可屏蔽中断与不可屏蔽中 断两种
中断源分类 1、外中断源
I/O设备 数据通道 实时钟 故障源
中断处理程序中,最后应有IRET指令 恢复断点信息 恢复标志寄存器FR
3.2
中断优先权
主程序 中断源5处理程 序 中断源3处理程 序
中断源5请求
求 3请 源 断 中
中断源1处理程 序
求 1请 源 中断
返回 返回 返回
(假设中 断源1 ~n 的优先 级为从高 到低)
①软件查询。 ②硬件链式优先级排队电路。 ③硬件优先级编码比较电路。
2)使用35H功能
35H功能:查询指定中断号的中断服务程序入口地址 a)AL=中断号 b)执行INT 21H后入口地址的段地址放在ES中,偏移地址 放在BX中 c)可利用35H功能,在更新中断服务程序入口之前,保存 原有的中断服务程序入口地址
MOV AH,35H MOV AL,0 INT 21H MOV INTOSEG,ES MOV INTOFF,BX ;功能号置AH ;中断类型号置AL ;保存原中断服务程序段基址 ;保存原中断服务程序偏移基址
1、绝对地址置入
INT-TBL SEGMENT AT 0 ORG n×4 DD INT-VCE INT-TBL ENDS INT-VCE PROC FAR
2、使用串指令置入
CLI MOV AX,0 MOV ES,0 MOV DI,n * 4 MOV AX,OFFSET INT-VCE CLD STOSW MOV AX,SEG INT-VCE STOSW STI
3 FFH 3 FC H
CS IP
n =2 55 用户使用

0 84 H
中断向量地址指针=
4×中断类型码
如:中断类型码为20H的中断 向量,存放在0000:0080H开 始的四个单元中。
0 80 H 0 18 H 0 14 H 0 10 H 0 0C H 0 08 H
CS IP
中断向量地址指针
0 04 H 0 00 H
PUSH DS MOV DX,SEG INT60H MOV DS,DX MOV DX,OFFSET INT60H MOV AL,60H MOV AH,25H INT 21H POP DS ;置中断服务程序段地址 ;置中断服务程序偏移地址
3.3.3
中断向量表的建立
3、使用DOS系统功能调用 INT 21H
2、内部中断响应过程
3.3.4
中断响应过程
3、外部中断响应过程 1)非屏蔽中断响应过程
响应过程 同 内部中断
2) 可屏蔽中断响应过程
不同点在于:需要两个响应周期,获取中断类型码
3.3.4
中断响应过程
3、外部中断响应过程 外部中断响应一共需要7个总线周期 执行两个中断响应周期,获取中断类型号 执行一个写总线周期,FR入栈,同时清IF、TF
中断优先级控制逻辑
图 1 微机系统中实现中断的基本模型
中断源n响应
CPU正在执行的程序 中断事件处理程序 中断事件发生
中断断点
断 中 应 U响 CP
中断结 束
图2 有中断产生的情况下CPU运行程序的轨迹
3.1.2
中断处理过程
4、中断处理
保护现场 开中断 中断服务 关中断 恢复现场
4、中断返回
④利用可编程中断控制器。
3.2.1
软件查询
中断服务程序 断点保护
D0 D0 ~D7

D7 CPU
中 断 请 求 输 入 接 口
中断源1 中断源2 查 询 中 断 源

中断源1请求? N 中断源2请求? N

Y
对中断源 1服务
Y
对中断源 2服务
中断源n
INTR
≥1

中断源n请求? N 断点恢复
Y
对中断源 n服务
中断返回
(a)
(b)
3.2.2
硬件排优
2
可编程中断控制器
中断优先权管理电路
中断请求锁存器 中断类型寄存器 中断屏蔽寄存器 当前中断服务寄存器
3.3
3.3.1
80X86中断系统
中断结构
8086(88)中断系统可以容纳最多256个中断源, 所有中断源统一编码,每个中断源用一个字节型编码 标识,它是CPU识别中断源的标记。 256个中断源分为两大类:
CS IP CS IP CS IP CS IP CS段地址 IP偏移地址 CS段地址 IP偏移地址

系统使用 n =5 溢出中断n =4 断点中断n =3 NMI n =2 单步中断 n =1 除法错中断 n =0
图7 中断向量表
3.3.3
中断向量表的建立
中断服务程序的入口地址该怎么置入中断向量表中?
执行两个写总线周期,断点地址入栈
执行两个读总线周期,将中断服务程序地址送到IP、 CS
非屏蔽中断 (NMI) 内部中断 (INT)
中断请求 可屏蔽中断 (INTR) 第1个INTA周期
第2个INTA周期(从 0 ~D7 读中断向量码 D n)
FLAGS→((SP)-1 )((SP)-2 ) (CS)→((SP)-3 )((SP)-4 ) (IP)→((SP)-5 )((SP)-6 ) (SP)-6 →SP 0 →IF 0 →TF
4、直接装入法
3.3.4
中断响应过程
取指令
1、各类中断的优先权
执行当前指令
除法出错中断 溢出中断 INT n 中断 NMI INTR中断 单步中断
执行完否 Y 有内部中断? N 有NMI? N 有INTR? N 有单步中断? N
N
Y
Y
Y
IF=1 N
Y
Y
TF=1 N
Y
中断响应过程
IRET
;置向量表段地址 ;置向量表偏移地址 ;置中断服务程序偏移地址 ;清除方向标志 ;置中断服务程序段地址
……
3.3.3
中断向量表的建立
3、使用DOS系统功能调用 INT 21H
系统功能调用: a)把调用号放入AH中,设置入口参数 b)执行INT 21H 1)使用25H功能 25H功能:根据中断号更新中断服务程序的入口地址 a)AL=中断号 b)DS:DX=中断服务程序新的入口地址的段、偏移地址
(4 n )(4 n +1 )→IP (4 n +2 )(4 n +3 )→C S
中断处理
图5 中断响应过程
(1)内部中断 由CPU内部事件及执行软中断指令产生。已定义 的内部中断有: ① 除法错中断,0型中断。 ② 单步中断,1型中断 ③ 断点中断,3型中断,用于调试插入断点。 ④ 溢出中断,4型中断,INTO指令。 ⑤ 指令中断,INT n指令
注意: ① 中断在处理过程中,CPU自动将标志FR入栈,然 后清TF和IF ② IF的值可以通过指令STI和指令CLI改变 ③ 没有直接改变TF值的指令,需要编程 FR:
CPU状态字中IF=1,开中断;IF=0,关中断
CPU复位,IF=0,TF=0;用STI开中断,CLI关中断 CPU响应中断后,自动实现关中断,若要实现中断嵌套,在中
断服务程序中要用STI开中断
CPU 中断事件(中断源)
中断源1请求
中断源1响应
中断源n请求
……
中断请求 中断控制逻辑 中断响应
CPU能够检测到它。 ③一旦CPU对某中断源的请求提供了服
务,则该中断源的请求信号应及时撤消。
2、中断优先级判定
多中断请求的优先级判定 实现多层中断嵌套
3.1.2
中断处理过程
3、中断响应
获得中断类型号 保护状态标志 屏蔽新的INTR中断和单步中断 保存断点信息 根据中断类型,获得中断服务程序的入口地址 进入中断服务程序来自百度文库
PUSHF POP AX OR AX,0100H PUSH AX POPF OF DF IF TF SF ZF AF PF CF
3.3.1
中断结构
(2)外部中断 由外部中断源产生对CPU的请求而引发的。 8086(88)中断系统将外部中断源又分为两种。 ① 非屏蔽中断。
2型中断。当NMI引脚出现上升沿触发,表示有非 屏蔽中断请求 信号的有效高电平应持续2个时钟周期以上 用来处理系统突发事件
相关文档
最新文档