中断向量:是指中断服务程序入口地址的偏移量与段基值,一个中断向量占据4字节空间。中断向量表是8088系统内存中最低端1K字节空间,它的作用就是按照中断类型号从小到大的顺序存储对应的中断向量,总共存储256个中断向量。在中断响应过程中,CPU通过从接口电路获取的中断类型号(中断向量号)计算对应中断向量在表中的位置,并从中断向量表中获取中断向量,将程序流程转向中断服务程序的入口地址。
80x86系统是把所有的中断向量集中起来,按中断类型号从小到大的顺序存放到存储器的某一区域内,这个存放中断向量的存储区叫做中断向量表,即中断服务程序入口地址表。
由于中断向量表可以在操作系统层面灵活修改,因此,不同的系统的中断向量表可能是不同的。此外,intel在CPU的保护模式下,占用了0x00 ~ 0x1F共32个中断号,在Linux下,是从0x20开始用于系统自身的中断的,包括8259芯片的中断重置。
BIOS(实模式)的中断向量表如下:
80x86中断向量
I/O ADDR
|
INT TYPE(16进制)
|
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(16进制)
|
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(16进制)
|
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(16进制)
|
FUNCTION
|
6C ~ 6F
|
1B
|
Ctrl - Break 控制的软中断
|
70 ~ 73
|
1C
|
定时器控制的软中断
|
74 ~ 77
|
1D
|
视频参数块
|
78 ~ 7B
|
1E
|
软盘参数块
|
7C ~ 7F
|
1F
|
图形字符扩展码
|
在DOS系统(实模式)下,从0x20开始,用于操作系统本身。
DOS中断向量
I/O ADDR
|
INT TYPE(16进制)
|
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 中断
|