中断向量表

中断向量与中断向量表
在中断源识别方法时提到:早期的微机系统中将由硬件产生的中断标识码
(中断源的识别标志,可用来形成相应的中断服务程序的入口地址或存放中断服务程序的首地址)称为中断向量。在Pc/AT中也用到这个名称,但含义有所不同。在Pc/AT机中,中断向量是指中断服务程序的入口地址,包括段地址CS和段内偏移 量IP共4个字节。在PC/AT中,规定内存储器的最低1 KB用来存放中断向量(共256个),称这一片内存区为中断向量表,如图所示。
在Pc/AT中由硬件产生的中断标识码被称为中断类型号(当然,中断类型号还有其他的产生方法,如指令中直接给出、CPU自动形成等),即在中断响应期间8259A产生的是当前请求中断的最高优先级的中断源的中断类型号。中断类型号和中断向量之间有下面的关系:
中断类型号×4=存放中断向量的首地址
有了存放中断向量的首地址,从该地址开始的4个存储单元中取出的就是中断服务程序的入口
中断向量是指中断服务程序入口地址的偏移量与段基值,一个中断向量占据4字节空间。中断向量表是8088系统内存中最低端1K字节空间,它的作用就是按照中断类型号从小到大的顺序存储对应的中断向量,总共存储256个中断向量。在中断响应过程中,CPU通过从接口电路获取的中断类型号(中断向量号)计算对应中断向量在表中的位置,并从中断向量表中获取中断向量,将程序流程转向中断服务程序的入口地址
中断向量表
80x86中断向量
I/O ADDR
INT TYPE FUNCTION
00 ~ 03 0 除法溢出中断
04 ~ 07 1 单步(用于DEBUG)
08 ~ 0B 2 非屏蔽中断(NMI)
0C ~ 0F 3 断点中断(用于DEBUG)
10 ~ 13 4 溢出中断
14 ~ 17 5 打印屏幕
18 ~ 1F 6,7 保留
8259中断向量
I/O ADDR INT TYPE FUNCTION
20 ~ 23 8 定时器 (IRQ0)
24 ~ 27 9 键盘 (IRQ1)
28 ~ 2B A 彩色/图形 (IRQ2)
2C ~ 2F B 串行通信COM2 (IRQ3)
30 ~ 33 C 串行通信COM1 (IRQ4)
34 ~ 37 D LPT2控制器中断 (IRQ5)
38 ~ 3B E 磁盘控制器中断 (IRQ6)
3C ~ 3F F LPT1控制器中断 (IRQ7)
BIOS中断向量
I/O ADDR INT TYPE FUNCTION
40 ~43 10 视频显示 I/O
44 ~ 47 11 设备检验
48 ~ 4B 12 测定存储器容量
4C ~ 4F 13 磁盘 I/O
50 ~ 53 14 RS-232 串行口 I/O
54 ~ 57 15 系统描述表指针
58 ~ 5B 16 键盘 I/O
5C ~ 5F 17 打印机 I/O
60 ~ 63 18 ROM BASIC 入口代码
64 ~ 67 19 引导装入程序
68 ~ 6B 1A 日时钟
提供给用户的中断
I/O ADDR INT TYPE FUNCTION
6C ~ 6F 1B Ctrl - Break 控制的软中断
70 ~ 73 1C 定时器控制的软中断
参数表指针
I/O ADDR INT TYPE FUNCTION
74 ~ 77 1D 视频参数块
78 ~ 7B 1E 软盘参数块
7C ~ 7F 1F 图形字符扩展码
DOS中断向量
I/O ADDR INT TYPE FUNCTION
80 ~ 83 20 DOS 中断返回
84 ~ 87 21 DOS 系统功能调用
88 ~ 8B 22 程序中止时 DOS 返回地址(用户不能直接调用)
8C ~ 8F 23 Ctrl - Break 处理地址(用户不能直接调用)
90 ~ 93 24 严重错误处理(用户不能直接调用)
94 ~ 97 25 绝对磁盘读功能
98 ~ 9B 26 绝对磁盘写功能
9C ~ 9F 27 终止并驻留程序
A0 ~ A3 28 DOS安全使用
A4 ~ A7 29 快速写字符
A8 ~ AB 2A Microsoft 网络接口
B8 ~ BB 2E 基本 SHELL 程序装入
BC ~ BF 2F 多路服务中断
CC ~ CF 33 鼠标中断
104 ~ 107 41 硬盘参数块
118 ~ 11B 46 第二硬盘参数块
11C ~ 3FF 47 ~ FF BASIC 中断