1
第 7章
输入输出系统
2
主要内容
? 输入输出系统的特点和功能
? I/O端口及其编址方式
? 基本输入输出方法
? 中断控制技术
3
§ 7.1 输入输出系统概述
主要内容:
? I/O系统特点
? I/O接口与 I/O端口的概念
? I/O端口的编址方式
? 端口地址译码
? 数据传送方式
4
一、输入输出系统
将 CPU及主存以外的部分叫做输入输出系统
输入输出接口
输入输出设备
输入输出软件
5
输入输出系统的特点
? 复杂性
? 异步性
? 时实性
? 与设备无关性
6
I/O接口
I/O接口:
? 负责将外设连接到总线上的一组逻辑电
路的总称。
? 实现外设与主机之间的 信息交换。
7
I/O接口要解决的问题
? 速度匹配 (Buffer)
? 信号的驱动能力 (电平转换器、驱动器 )
? 信号形式和电平的匹配 (A/D,D/A)
? 信息格式 (字节流、块、数据包、帧 )
? 时序匹配 (定时关系 )
? 总线隔离 (三态门 )
8
接口的功能
? 数据的缓冲与暂存
? 信号电平与类型的转换
? 增加信号的驱动能力
? 对外设进行监测、控制与管理,中断处理
9
二,I/O端口
数据端口
状态端口
控制端口
端 口
I/O端口:接口中的寄存器
10
I/O端口
CPU
数据
状态
控制
外设
11
I/O端口的编址方式
统一编址
独立编址
12
端口与内存的统一编址
特点:
? 指令及控制信号统一
? 内存地址资源减少 内存地址
960KB
I/O地址
64KB
00000H
F0000H
FFFFFH
13
端口的独立编址
特点:
? 内存地址资源充
分利用
? 能够应用于端口
的指令较少
内存
地址
I/O
地址
00000H
FFFFFH
FFFFH
0000H
14
端口的独立编址
8
0
8
6
总线
A19-A0
A15-A0
MEMR,MEMW
IOR,IOW,BHE
存储器
输入 /输出
15
8086的 I/O端口编址
? 采用 I/O独立编址方式 (但地址线与存储器共用 );
? 最小模式下由 M/IO区分是访问内存还是访问端口;
? 最大模式下用总线控制器信号来区分访问对象
? I/O操作只使用 20位地址信号中的 16位,A15~ A0
? 可寻址的 I/O端口数为 64K(65536)个
? I/O地址范围为 0~ FFFFH
? IBM PC只使用了 1024个 I/O地址 (0~ 3FFH)
16
三,I/O地址的译码
目的:
? 确定端口的地址
参加译码的信号:
? IOR,IOW,A15 ~ A0
? OUT指令将使总线的 IOW信号有效
? IN指令将使总线的 IOR信号有效
17
I/O地址的译码
? 当接口只有一个端口时,16位地址信号
一般 应 全部参与译码,译码输出直接选择
该端口;当接口具有多个端口时,则 16
位地址线的高位 参与译码(决定接口的基
地址),而低位则用于确定要访问哪一个
端口。
18
I/O地址的译码
? 某外设接口有 4个端口,地址为 2F0H—
— 2F3H,试将其与系统连接。
19
四、输入输出数据的传送方式
并行 —— 一个数据单位同时传送
串行 —— 数据按位传送
20
§ 7.2 基本输入 /输出方法
程序控制方式
中断方式传送
直接存储器存取 (DMA)
无条件传送
查询式传送
21
一、无条件传送
? 适用于总是处于准备好状态的外设
? 优点:软件及接口硬件简单
? 缺点:只适用于简单外设,适应范围较窄
22
无条件传送例
? 读取开关的状态;
? 当开关闭合时,输出编码使发光二极管亮
23
D
CP
Q
D0
D1
输出口地
址 38F3H
输入口地
址 38F0H
+5V
1
24
二、查询工作方式
适用场合:
? 外设并不总是准备好
? 对传送速率和效率要求不高
对外设及接口的要求:
? 外设应提供设备状态信息
? 接口应具备状态端口
25
查询工作方式
? 优点:软件比较简单
? 缺点,CPU效率低,数据传送的实时性
差,速度较慢
单一外设时
的工作流程
26
超时?
READY?
与外设进
行数据交换
超时错读入并测试外设状态
Y
N
Y
N
传送完?
防止死循环
复位计时器
N
Y
27
查询工作方式例
?外设状态端口地址为 03FBH,第 5位 (bit5)为
状态标志( =1忙,=0准备好)
?外设数据端口地址为 03F8H,写入数据会使
状态标志置 1 ;外设把数据读走后又把它置
0。
?试画出其电路图,并将 DATA下 100B数输
出
28
三、中断控制方式
特点:
? 外设在需要时向 CPU提出请求,CPU再去
为它服务。服务结束后或在外设不需要时,
CPU可执行自己的程序
? 优点,CPU效率高,实时性好,速度快。
? 缺点:程序编制较为复杂。
29
以上三种 I/O方式的共性
均需 CPU作为中介:
? 软件,外设与内存之间的数据传送是通过 CPU
执行程序来完成的( PIO方式);
? 硬件,I/O接口和存储器的读写控制信号、地址
信号都是由 CPU发出的。
? 缺点:程序的执行速度限定了传送的最大速度
(约为几十 KB/秒)
30
四,DMA控制方式
特点:
? 外设直接与存储器进行数据交换, CPU不
再担当数据传输的中介者;
? 总线由 DMA控制器( DMAC)进行控制
( CPU要放弃总线控制权),内存 /外设的
地址和读写控制信号均由 DMAC提供。
31
DMA控制方式
DMAC 外设
接口CPU
QRD
MEM
DACK
HOLD
HLDA
…
BUS
控制信号
32
DMA控制方式的工作过程
? 外设向 DMA控制器发出,DMA传送请求”信号 DRQ;
? DMA控制器收到请求后,向 CPU发出“总线请求”信
号 HOLD;
? CPU在完成当前总线周期后会立即发出 HLDA
信号,对 HOLD信号进行响应;
? DMA控制器收到 HLDA信号后,就开始控制总线,并
向外设发出 DMA响应信号 DACK
33
DMA控制方式的工作过程
? DMA控制器送出地址信号和相应的控制信
号,实现外设与内存或内存与内存之间的直
接数据传送;
? 例:从外设向内存传送一个字节
DMAC向 I/O接口发出读信号,同时往地址总线上
发出存储器的地址和存储器写信号和 AEN信号。
34
DMA控制方式的工作过程
? DMA控制器自动修改地址和字节计数器,并
判断是否需要重复传送操作。当规定的数据
传送完后,DMA控制器就撤销发往 CPU的
HOLD信号。 CPU检测到 HOLD失效后,紧
接着撤销 HLDA信号,并在下一时钟周期重
新开始控制总线。
35
DMA的三种传送方式
? 连续传送(块传送):
DMAC在申请到总线后,将一块数据传送完后才释放
总线,而不管中间 DREQ是否有效。
? 单次传送(每次传送一个字节):
每个 DMA周期只传送一个字节就立即释放总线。
? 按需传送(猝发传送):
只要 I/O接口的数据缓冲可用,就可进行传送。此时
I/O接口需要有一定大小的 FIFO缓冲区。
36
数据块传送:
Y
N
允许 DMA
DMA请求?
DMAC请求总线
CPU响应,DMAC获总线控制权
DMA传送一个字节
块结束?
地址增量,计数器减量
DMAC释放总线
Y
N
37
每次传送一个字节:
N
Y
N
允许 DMA
DMAC请求总线
CPU响应,DMAC获总线控制权
DMA传送一个数据
块结束?
释放总线至少一个总线周期
地址增量,计数器减量
DMAC释放总线
Y
测试 I/O的 DREQ
DMA请求?
38
按需传送:
N
Y
CPU响应,DMAC获总线控制权
DMA传送一个字节
块结束?
测试 I/O的 DREQ
有效?
地址增量,计数器减量
释放总线,请求中断无效,释放总线
允许 DMA
DMA请求?
DMAC请求总线
Y
N
Y
N
39
DMA控制方式
优点:
? 数据传输 由 DMA硬件来控制,数据 直接在
内存和外设之间交换,可以达到很高的传
输速率(可达几 MB/秒)
40
五,I/O通道控制方式
? 具有自己的指令系统
? 专门负责外部设备的控制
41
§ 7.3 中断技术
掌握:
? 中断的基本概念
? 中断响应的一般过程
? 中断向量表及其初始化
? 8088/8086中断系统
42
一、中断的基本概念
中断:
? CPU执行程序时,由于发生了某种随机的事
件 (外部或内部 ),引起 CPU暂时中断正在运
行的程序,转去执行一段特殊的服务程序 (称
为中断服务程序或中断处理程序 ),以处理该
事件,该事件处理完后又返回被中断的程序
继续执行,这一过程称为中断。
43
中断源
? 引起 CPU中断的事件,发出中断请求的来源
内部中断
外部中断
异常中断
软件中断
可屏蔽中断
非屏蔽中断
异常事件引起
中断指令引起
INTR中断
NMI中断
44
引入中断的原因
? 提高数据传输率;
? 避免了 CPU不断检测外设状态的过程,
提高了 CPU的利用率。
? 实现对特殊事件的实时响应。
45
二、外部中断响应的一般过程
? 中断请求
? 中断判优及中断源识别
? 中断响应
? 中断处理(服务)
? 中断返回
46
中断请求
? 中断请求信号应保持到中断被处理为止;
? CPU响应中断后,中断请求信号应及时撤销。
NMI
INTR
47
中断源识别
? 软件查询法
? 中断矢量法。由中断源提供中断类型号,
CPU根据类型确定中断源。
48
中断判优 要解决的问题
? 对同时产生的中断:
首先处理优先级别较高的中断;若优先级别相
同,则按先来先服务的原则
? 对非同时产生的中断:
低优先级的中断程序允许被高优先级的中断源
所中断
中断嵌套
49
中断判优 控制方法
软件判优
顺序查询中断请求,先查询的先服务
(即先查询的优先级别高)
硬件判优
链式判优、并行判优(中断向量法)
50
菊花链逻辑电路
INTAin
IREQ
INTR
&
=1
≥1
INTAout
DB
三态门 中断
向
量
码
E
外设接口
中断确认
菊花链
逻辑电路
51
中断响应
? 向中断源发出 INTA中断响应信号;
? 保护断点。包括 FLAGS,CS和 IP
? 获得中断服务程序入口地址
固定入口法
中断向量法
52
中断处理
中断服务子程序的特点:
? 为, 远过程,
? 用 IRET指令返回
53
中断服务子程序完成的工作
? 保护现场
? 开中断( STI)
? 中断处理
? 关中断( CLI)
? 恢复现场
? 中断返回
54
中断返回
? 执行 IRET指令,使 IP,CS和 FLAGS从堆
栈弹出
55
三,8088/8086中断系统
内部中断
外部中断
除法错中断
溢出中断
单步中断
软件中断
非屏蔽中断
可屏蔽中断
256
个中
断源
56
NMI
INTR
中断逻辑
软件中断指令
溢出中断
除法错
单步中断
非屏蔽中断请求
中断控
制器
8259A
PIC
8086/8088CPU内部逻辑
断点中断 可
屏
蔽
中
断
请
求
n
4
3
0
1
2
8086/8088中断源类型:
57
中断向量表
┇
┇
00000H
003FFH
1KB
58
中断向量表
? 存放各类中断的中断服务程序的入口地址
? 每个入口占用 4 Bytes,低字为段内偏移,
高字为段基址
? 表的地址位于内存的 00000H~ 003FFH,
大小为 1KB,共 256个入口
59
中断向量表的初始化
? 将用户自定义的中断服务程序入口地址放
入向量表
? 两种方法:
? 直接写中断向量表
? 利用 DOS中断功能调用,INT 25H
? 例:将中断向量码为 48H的服务程序入口
地址放入向量表
60
中断向量表的初始化
? 直接写中断向量表
MOV AX,0
MOV DS,AX
MOV SI,48H*4
MOV DX,OFFSET int_proc
MOV [SI],DX
MOV DX,SEG int_proc
MOV [SI+2],DX
? 利用 DOS中断功能调用,INT 25H
MOV DX,SEG int_proc
MOV DS,DX
MOV DX,OFFSET int_proc
MOV AX,2548H
INT 21H
P319
61
8088/8086内部中断响应过程
特点:
? 无 INTA周期
? 中断类型码固定或由指令给出
62
8088/8086内部中断响应过程
响应过程步骤:
① PUSH FLAG
② 暂存 TF
③ 清除 IF和 TF
④ PUSH CS
PUSH IP
⑤ [0:中断类型号 *4] → I P
[0:中断类型号 *4+2]→ CS
63
8088/8086外部中断响应过程
可屏蔽中断( INTR):
① INTA周期 1,PIC进行中断的排队和优先级处理
② INTA周期 2,PIC把中断类型号放到 DB上, 由 CPU读入
③ PUSH FLAG
④ 暂存 TF
⑤ 清除 IF和 TF
⑥ PUSH CS
PUSH IP
⑦ [0:中断类型号 *4]→ I P
[0:中断类型号 *4+2]→ CS
NMI中断响应过程与内部中断类似
中断响应和处
理流程见 p318
64
8088/8086中断系统的优先级
? 优先级从高到低的顺序为:
? 内部中断
? NMI中断
? INTR中断
? 单步中断
65
四、中断程序的一般结构
? 中断初始化
? 确定中断类型码
? 保存原中断向量
? 设置自己的中断向量
? 开放中断( 8259A和 CPU)
? 主程序(随时可响应中断)
? 中断服务程序
? 远过程、保护断点、开放中断
? 中断处理
? 恢复断点
? 用 IRET返回
? 退出主程序时一般要求恢复原中断向量
66
§ 7.4 中断控制器 8259
? 略
67
作业:
? 7.3
? 7.5
? 7.11
? 7.12
? 7.13
? 7.14
第 7章
输入输出系统
2
主要内容
? 输入输出系统的特点和功能
? I/O端口及其编址方式
? 基本输入输出方法
? 中断控制技术
3
§ 7.1 输入输出系统概述
主要内容:
? I/O系统特点
? I/O接口与 I/O端口的概念
? I/O端口的编址方式
? 端口地址译码
? 数据传送方式
4
一、输入输出系统
将 CPU及主存以外的部分叫做输入输出系统
输入输出接口
输入输出设备
输入输出软件
5
输入输出系统的特点
? 复杂性
? 异步性
? 时实性
? 与设备无关性
6
I/O接口
I/O接口:
? 负责将外设连接到总线上的一组逻辑电
路的总称。
? 实现外设与主机之间的 信息交换。
7
I/O接口要解决的问题
? 速度匹配 (Buffer)
? 信号的驱动能力 (电平转换器、驱动器 )
? 信号形式和电平的匹配 (A/D,D/A)
? 信息格式 (字节流、块、数据包、帧 )
? 时序匹配 (定时关系 )
? 总线隔离 (三态门 )
8
接口的功能
? 数据的缓冲与暂存
? 信号电平与类型的转换
? 增加信号的驱动能力
? 对外设进行监测、控制与管理,中断处理
9
二,I/O端口
数据端口
状态端口
控制端口
端 口
I/O端口:接口中的寄存器
10
I/O端口
CPU
数据
状态
控制
外设
11
I/O端口的编址方式
统一编址
独立编址
12
端口与内存的统一编址
特点:
? 指令及控制信号统一
? 内存地址资源减少 内存地址
960KB
I/O地址
64KB
00000H
F0000H
FFFFFH
13
端口的独立编址
特点:
? 内存地址资源充
分利用
? 能够应用于端口
的指令较少
内存
地址
I/O
地址
00000H
FFFFFH
FFFFH
0000H
14
端口的独立编址
8
0
8
6
总线
A19-A0
A15-A0
MEMR,MEMW
IOR,IOW,BHE
存储器
输入 /输出
15
8086的 I/O端口编址
? 采用 I/O独立编址方式 (但地址线与存储器共用 );
? 最小模式下由 M/IO区分是访问内存还是访问端口;
? 最大模式下用总线控制器信号来区分访问对象
? I/O操作只使用 20位地址信号中的 16位,A15~ A0
? 可寻址的 I/O端口数为 64K(65536)个
? I/O地址范围为 0~ FFFFH
? IBM PC只使用了 1024个 I/O地址 (0~ 3FFH)
16
三,I/O地址的译码
目的:
? 确定端口的地址
参加译码的信号:
? IOR,IOW,A15 ~ A0
? OUT指令将使总线的 IOW信号有效
? IN指令将使总线的 IOR信号有效
17
I/O地址的译码
? 当接口只有一个端口时,16位地址信号
一般 应 全部参与译码,译码输出直接选择
该端口;当接口具有多个端口时,则 16
位地址线的高位 参与译码(决定接口的基
地址),而低位则用于确定要访问哪一个
端口。
18
I/O地址的译码
? 某外设接口有 4个端口,地址为 2F0H—
— 2F3H,试将其与系统连接。
19
四、输入输出数据的传送方式
并行 —— 一个数据单位同时传送
串行 —— 数据按位传送
20
§ 7.2 基本输入 /输出方法
程序控制方式
中断方式传送
直接存储器存取 (DMA)
无条件传送
查询式传送
21
一、无条件传送
? 适用于总是处于准备好状态的外设
? 优点:软件及接口硬件简单
? 缺点:只适用于简单外设,适应范围较窄
22
无条件传送例
? 读取开关的状态;
? 当开关闭合时,输出编码使发光二极管亮
23
D
CP
Q
D0
D1
输出口地
址 38F3H
输入口地
址 38F0H
+5V
1
24
二、查询工作方式
适用场合:
? 外设并不总是准备好
? 对传送速率和效率要求不高
对外设及接口的要求:
? 外设应提供设备状态信息
? 接口应具备状态端口
25
查询工作方式
? 优点:软件比较简单
? 缺点,CPU效率低,数据传送的实时性
差,速度较慢
单一外设时
的工作流程
26
超时?
READY?
与外设进
行数据交换
超时错读入并测试外设状态
Y
N
Y
N
传送完?
防止死循环
复位计时器
N
Y
27
查询工作方式例
?外设状态端口地址为 03FBH,第 5位 (bit5)为
状态标志( =1忙,=0准备好)
?外设数据端口地址为 03F8H,写入数据会使
状态标志置 1 ;外设把数据读走后又把它置
0。
?试画出其电路图,并将 DATA下 100B数输
出
28
三、中断控制方式
特点:
? 外设在需要时向 CPU提出请求,CPU再去
为它服务。服务结束后或在外设不需要时,
CPU可执行自己的程序
? 优点,CPU效率高,实时性好,速度快。
? 缺点:程序编制较为复杂。
29
以上三种 I/O方式的共性
均需 CPU作为中介:
? 软件,外设与内存之间的数据传送是通过 CPU
执行程序来完成的( PIO方式);
? 硬件,I/O接口和存储器的读写控制信号、地址
信号都是由 CPU发出的。
? 缺点:程序的执行速度限定了传送的最大速度
(约为几十 KB/秒)
30
四,DMA控制方式
特点:
? 外设直接与存储器进行数据交换, CPU不
再担当数据传输的中介者;
? 总线由 DMA控制器( DMAC)进行控制
( CPU要放弃总线控制权),内存 /外设的
地址和读写控制信号均由 DMAC提供。
31
DMA控制方式
DMAC 外设
接口CPU
QRD
MEM
DACK
HOLD
HLDA
…
BUS
控制信号
32
DMA控制方式的工作过程
? 外设向 DMA控制器发出,DMA传送请求”信号 DRQ;
? DMA控制器收到请求后,向 CPU发出“总线请求”信
号 HOLD;
? CPU在完成当前总线周期后会立即发出 HLDA
信号,对 HOLD信号进行响应;
? DMA控制器收到 HLDA信号后,就开始控制总线,并
向外设发出 DMA响应信号 DACK
33
DMA控制方式的工作过程
? DMA控制器送出地址信号和相应的控制信
号,实现外设与内存或内存与内存之间的直
接数据传送;
? 例:从外设向内存传送一个字节
DMAC向 I/O接口发出读信号,同时往地址总线上
发出存储器的地址和存储器写信号和 AEN信号。
34
DMA控制方式的工作过程
? DMA控制器自动修改地址和字节计数器,并
判断是否需要重复传送操作。当规定的数据
传送完后,DMA控制器就撤销发往 CPU的
HOLD信号。 CPU检测到 HOLD失效后,紧
接着撤销 HLDA信号,并在下一时钟周期重
新开始控制总线。
35
DMA的三种传送方式
? 连续传送(块传送):
DMAC在申请到总线后,将一块数据传送完后才释放
总线,而不管中间 DREQ是否有效。
? 单次传送(每次传送一个字节):
每个 DMA周期只传送一个字节就立即释放总线。
? 按需传送(猝发传送):
只要 I/O接口的数据缓冲可用,就可进行传送。此时
I/O接口需要有一定大小的 FIFO缓冲区。
36
数据块传送:
Y
N
允许 DMA
DMA请求?
DMAC请求总线
CPU响应,DMAC获总线控制权
DMA传送一个字节
块结束?
地址增量,计数器减量
DMAC释放总线
Y
N
37
每次传送一个字节:
N
Y
N
允许 DMA
DMAC请求总线
CPU响应,DMAC获总线控制权
DMA传送一个数据
块结束?
释放总线至少一个总线周期
地址增量,计数器减量
DMAC释放总线
Y
测试 I/O的 DREQ
DMA请求?
38
按需传送:
N
Y
CPU响应,DMAC获总线控制权
DMA传送一个字节
块结束?
测试 I/O的 DREQ
有效?
地址增量,计数器减量
释放总线,请求中断无效,释放总线
允许 DMA
DMA请求?
DMAC请求总线
Y
N
Y
N
39
DMA控制方式
优点:
? 数据传输 由 DMA硬件来控制,数据 直接在
内存和外设之间交换,可以达到很高的传
输速率(可达几 MB/秒)
40
五,I/O通道控制方式
? 具有自己的指令系统
? 专门负责外部设备的控制
41
§ 7.3 中断技术
掌握:
? 中断的基本概念
? 中断响应的一般过程
? 中断向量表及其初始化
? 8088/8086中断系统
42
一、中断的基本概念
中断:
? CPU执行程序时,由于发生了某种随机的事
件 (外部或内部 ),引起 CPU暂时中断正在运
行的程序,转去执行一段特殊的服务程序 (称
为中断服务程序或中断处理程序 ),以处理该
事件,该事件处理完后又返回被中断的程序
继续执行,这一过程称为中断。
43
中断源
? 引起 CPU中断的事件,发出中断请求的来源
内部中断
外部中断
异常中断
软件中断
可屏蔽中断
非屏蔽中断
异常事件引起
中断指令引起
INTR中断
NMI中断
44
引入中断的原因
? 提高数据传输率;
? 避免了 CPU不断检测外设状态的过程,
提高了 CPU的利用率。
? 实现对特殊事件的实时响应。
45
二、外部中断响应的一般过程
? 中断请求
? 中断判优及中断源识别
? 中断响应
? 中断处理(服务)
? 中断返回
46
中断请求
? 中断请求信号应保持到中断被处理为止;
? CPU响应中断后,中断请求信号应及时撤销。
NMI
INTR
47
中断源识别
? 软件查询法
? 中断矢量法。由中断源提供中断类型号,
CPU根据类型确定中断源。
48
中断判优 要解决的问题
? 对同时产生的中断:
首先处理优先级别较高的中断;若优先级别相
同,则按先来先服务的原则
? 对非同时产生的中断:
低优先级的中断程序允许被高优先级的中断源
所中断
中断嵌套
49
中断判优 控制方法
软件判优
顺序查询中断请求,先查询的先服务
(即先查询的优先级别高)
硬件判优
链式判优、并行判优(中断向量法)
50
菊花链逻辑电路
INTAin
IREQ
INTR
&
=1
≥1
INTAout
DB
三态门 中断
向
量
码
E
外设接口
中断确认
菊花链
逻辑电路
51
中断响应
? 向中断源发出 INTA中断响应信号;
? 保护断点。包括 FLAGS,CS和 IP
? 获得中断服务程序入口地址
固定入口法
中断向量法
52
中断处理
中断服务子程序的特点:
? 为, 远过程,
? 用 IRET指令返回
53
中断服务子程序完成的工作
? 保护现场
? 开中断( STI)
? 中断处理
? 关中断( CLI)
? 恢复现场
? 中断返回
54
中断返回
? 执行 IRET指令,使 IP,CS和 FLAGS从堆
栈弹出
55
三,8088/8086中断系统
内部中断
外部中断
除法错中断
溢出中断
单步中断
软件中断
非屏蔽中断
可屏蔽中断
256
个中
断源
56
NMI
INTR
中断逻辑
软件中断指令
溢出中断
除法错
单步中断
非屏蔽中断请求
中断控
制器
8259A
PIC
8086/8088CPU内部逻辑
断点中断 可
屏
蔽
中
断
请
求
n
4
3
0
1
2
8086/8088中断源类型:
57
中断向量表
┇
┇
00000H
003FFH
1KB
58
中断向量表
? 存放各类中断的中断服务程序的入口地址
? 每个入口占用 4 Bytes,低字为段内偏移,
高字为段基址
? 表的地址位于内存的 00000H~ 003FFH,
大小为 1KB,共 256个入口
59
中断向量表的初始化
? 将用户自定义的中断服务程序入口地址放
入向量表
? 两种方法:
? 直接写中断向量表
? 利用 DOS中断功能调用,INT 25H
? 例:将中断向量码为 48H的服务程序入口
地址放入向量表
60
中断向量表的初始化
? 直接写中断向量表
MOV AX,0
MOV DS,AX
MOV SI,48H*4
MOV DX,OFFSET int_proc
MOV [SI],DX
MOV DX,SEG int_proc
MOV [SI+2],DX
? 利用 DOS中断功能调用,INT 25H
MOV DX,SEG int_proc
MOV DS,DX
MOV DX,OFFSET int_proc
MOV AX,2548H
INT 21H
P319
61
8088/8086内部中断响应过程
特点:
? 无 INTA周期
? 中断类型码固定或由指令给出
62
8088/8086内部中断响应过程
响应过程步骤:
① PUSH FLAG
② 暂存 TF
③ 清除 IF和 TF
④ PUSH CS
PUSH IP
⑤ [0:中断类型号 *4] → I P
[0:中断类型号 *4+2]→ CS
63
8088/8086外部中断响应过程
可屏蔽中断( INTR):
① INTA周期 1,PIC进行中断的排队和优先级处理
② INTA周期 2,PIC把中断类型号放到 DB上, 由 CPU读入
③ PUSH FLAG
④ 暂存 TF
⑤ 清除 IF和 TF
⑥ PUSH CS
PUSH IP
⑦ [0:中断类型号 *4]→ I P
[0:中断类型号 *4+2]→ CS
NMI中断响应过程与内部中断类似
中断响应和处
理流程见 p318
64
8088/8086中断系统的优先级
? 优先级从高到低的顺序为:
? 内部中断
? NMI中断
? INTR中断
? 单步中断
65
四、中断程序的一般结构
? 中断初始化
? 确定中断类型码
? 保存原中断向量
? 设置自己的中断向量
? 开放中断( 8259A和 CPU)
? 主程序(随时可响应中断)
? 中断服务程序
? 远过程、保护断点、开放中断
? 中断处理
? 恢复断点
? 用 IRET返回
? 退出主程序时一般要求恢复原中断向量
66
§ 7.4 中断控制器 8259
? 略
67
作业:
? 7.3
? 7.5
? 7.11
? 7.12
? 7.13
? 7.14