当前位置:文档之家› 第8章中断(8.2-8086中断系统)

第8章中断(8.2-8086中断系统)

29
8088CPU中断响应周期时序
第 一 个 中断响应周期
第 二 个 中断响应周期 T1
T1
CLK INTA AD7~AD0
T2
T3
T4
T2
T3
T4
向量类型
30
中断服务和返回
(5) 中断服务程序:保护现场、中断处理、恢复现场 (6) IRET ; (IP)←((SP+1),(SP)) (SP)←(SP+2) (CS)← ((SP+1), (SP)) (SP)←(SP+2) (FR)← ((SP+1), (SP)) (SP)←(SP+2)
§8.2 8086/88中断系统 (p241)
§8.2.1 中断结构 8086/88系统可处理256个中断源。
编号为0~255——中断类型号
分为:硬件(外部)中断 软件(内部)中断
1
CPU
INT n
NMI
中断逻辑
非屏蔽中断源
8259A
INTR 中断
控制 器 INT 指令 INTO 指令 除法 错误 单步 中断
的向量地址 中断向量。
0000:0049H 0000:004AH
0000:004BH
中断响应后 (CS)及(IP)的内容 ? (SP)的内容 ? (执行前(SP)=122AH) 19
例2:某段内存单元内容(16进制数)如下:
0000:00b0H AA 22 23 56 78 9A AB 11 56 3D BC 2A 2D …20 0000:00c0H BB 11 21 5B 18 9A 00 35 67 3D A1 6A 7D …BB C 则执行INT 31h 的中断服务程序的入口地址为_______
(IP) (CS) (IP) (CS) 224· ö Ó Ã » §¿ É Ó Ã
03FCH 03FEH à Ð À Í 255Ö Ð ¶ Ï Ê · Á ¿ (Ó Ã » §¿ É Ó Ã )
(IP) (CS)
15
中断向量表1
ò Á Ï ¿ µ Ø Ö · 0000:0000H 0001H 0002H 0003H 0004H 0006H 0008H 000AH 000CH 000EH 0010H 0012H 0014H à Ð À Í 5Ö Ð ¶ Ï Ê · Á ¿ (± £ Á ô ) à Ð À Í 4Ö Ð ¶ Ï Ê · Á ¿ (Ò ç ³ ö ) à Ð À Í 3Ö Ð ¶ Ï Ê · Á ¿ (¶ Ï µ ã Ö Ð ¶ Ï ) à Ð À Í 2Ö Ð ¶ Ï Ê · Á ¿ (NMI) Ð ¶ Ö Ï Ï ò Á ¿ à Ð À Í 0Ö Ð ¶ Ï Ê · Á ¿ (³ ý · ¨´ í ) à Ð À Í 1Ö Ð ¶ Ï Ê · Á ¿ (µ ¥ ² ½ ) (IP) (CS) (IP) (CS) (IP) (CS) (IP) (CS) (IP) (CS) (IP)
8 0 8 8
5
2)、可屏蔽中断
从INTR 引脚(18脚)输入 受IF控制
IF=1,中断允许;IF=0,中断被屏蔽。
触发方式:高电平 。 类型号:32(20H)~255(FFH)
6
说明:
一个系统中,通过中断控制器8259A的 配合,可屏蔽中断源可以有多达几十个。
7
2、软件中断
22
8.2.4 8086/88中断响应过程
主程序
中断源
中断请求 断点
中断响应
中断服务子程序
中断服务
中断返回 继续执行
1、获得中断类型号 2、准备好后转到入口
23
1、问题1:中断请求 ? 类型号
1)、软件中断获得中断类型号方法: 专用中断(包括除法出错、单步、断点、溢 出中断) CPU自动形成。 INT n 由指令提供。
中 断 向 量 表
0000:0000H 0001H 0002H 0003H 0004H 0006H 0008H 000AH 000CH 000EH 0010H 0012H 0014H 0016H
007CH 007EH 0080H 0082H à Ð À Í 32Ö Ð ¶ Ï Ê · Á ¿ (Ó Ã » §¿ É Ó Ã ) à Ð À Í 31Ö Ð ¶ Ï Ê · Á ¿ (± £ Á ô )
(IP) (CS)
17
1)、每个中断向量占4B。
偏移地址占低字节单元 段地址占高字节单元
2)、4×256=1K 00000H~003FFH 3)、向量地址: 中断向量的地址。 =4 × n ; n为中断类型号
18
例1:求 INT 12H
向量地址
中断向量
0000:0048H
60 70 80 90
IPL IPH CS L CS H
31
3、各类中断的优先级
现行指令 软件中断 N Y Y Y Y Y
中断响应周期 读中断向量号
NMI N INTR N TF=1 N 下条指令
IF=1 N
32
查询中断的顺序, 决定了各种中断源的优先权 • 软件中断 高 – 除法错中断
– 指令中断 – 溢出中断 Nhomakorabea• 非屏蔽中断 • 可屏蔽中断 • 单步中断
触发方式:上升沿,且高电平持续2T。 类型号:2
4
最大组态(最小组态) GND A14 A13 A12 A11 A10 A9 A8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK GND
VCC A15 A16/S3 A17/S4 A18/S5 A19/S6 (HIGH)(SSO) MN/MX RD RQ/GT0(HOLD) RQ/GT1(HLDA) LOCK(WR) S2(IO/M) S1(DT/R) S0(DEN) QS0(ALE) QS1(INTA) TEST READY RESET
28
3)、 INTR中断的处理过程 :
两个连续的总线周期: ① 第一个周期,发第一个 INTA 负脉冲,通知外设 接口,请求已被响应。 ② 第二个周期,发第二个 INTA 负脉冲,从DB 上读中断类型号(接口提供)。 ③ (FR)入栈: ④ IF←0,TF←0 ⑤ 保护断点 ⑥ 从中断向量表中取中断向量给IP 和CS
9
标志寄存器FR(程序状态字寄存器 PSW)
15
11 10
9 IF
8 TF
7 SF
6 ZF
5
4 AF
2 PF
0 CF
OF
DF
状态标志 OF SF ZF CF AF PF 溢出标志 符号标志 零标志 进位标志 辅助进位标志 奇偶标志 DF IF TF
控制标志 方向标志 中断标志 陷阱标志
10
3) 断点中断 原因:执行插入的INT3(INT)指令。 类型号:3 作用:设置断点以调试程序。
IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7
2
可 屏 蔽 中 断 源
1、硬件中断
分为 非屏蔽中断 可屏蔽中断
3
1)、非屏蔽中断
从NMI引脚(17脚)输入 不受IF控制
一旦NMI有中断请求,CPU在当前指令执行完成后, 必须立即响应。主要用于处理非常重要或非常紧急的 事件(如电源掉电、存储器故障等),
35
007CH 007EH 0080H 0082H à Ð À Í 32Ö Ð ¶ Ï Ê · Á ¿ (Ó Ã » §¿ É Ó Ã ) à Ð À Í 31Ö Ð ¶ Ï Ê · Á ¿ (± £ Á ô )
(IP) (CS) (IP) (CS) 224· ö Ó Ã » §¿ É Ó Ã
03FCH 03FEH à Ð À Í 255Ö Ð ¶ Ï Ê · Á ¿ (Ó Ã » §¿ É Ó Ã )

33
补充 IBMPC中断分配
34
以后备用
需要说明,中断向量表虽然设置在 RAM 的低端存储区 (第0段中的0000H~03FFH单元)内,但它并非常驻内 存,而是每次开机上电后,在系统正式工作之前都必须 对其进行初始化,即由程序将相应的中断服务程序的入 口地址装入指定的中断向量表区中。PC系统各机型启动 过程中,首先由ROM BOIS自测试代码对ROM BIOS控 制的中断向量进行初始化装入 0~77H共 120个中断向量。 若用户自行开发的应用程序采用 INT n 形式调用,则要 自己将中断服务程序入口地址装入或重新装入中断向量 表中所选定的单元中。
16
5· ö × ¨Ó Ã Ö Ð ¶ Ï
中断向量表 2 à Ð À Í 4Ö Ð ¶ Ï Ê · Á ¿ (Ò ç ³ ö ) 0012H
0014H 0016H à Ð À Í 5Ö Ð ¶ Ï Ê · Á ¿ (± £ Á ô )
0010H
(IP) (CS) (IP) (CS) 27· ö Ï µ Í ³ ± £ Á ô
单字节指令。
4) 运算溢出中断 原因:(OF)=1时,执行INTO指令。 类型号:4 作用:编程时,进行溢出监控。
11
5) 指令中断 原因:执行一条INT n。 类型号:n 作用:调用系统中相应的中断处理程序。
PC机中,由于类型号 0H~7H已定义为 CPU内 部中断,08H~0FH已定义为硬件中断,所以INT n指令中n值(类型码)可以为10H到FFH。
A、 5611H:2D2AH C、 3500H:9A18H
B、 A13DH:7D6AH D、 0000H:00C4H
20
总之:类型号 ? 中断向量
类型号×4 =向量地址连续4个单元 存放中断向量
21
8086系统的256个中断源分为三类: 第一类:专用中断 0~4号,系统定义。 第二类:系统保留的中断 5 ~ 31 号,共 27 个,为保持系统间的兼容及与将来 Intel系统的兼容。 第三类:用户定义 32 ~ 255 号,共 224 个,原则上可由用户定义为软 中断(INT n),或硬中断(通过INTR引入,使用 时要用户装入相应的中断向量)。 在这类中断中断中,有的系统已分配有固定的用处, 如类型号20H~3FH为DOS软中断,用户应避开。
相关主题