您当前的位置: 首页 > 

顺其自然~

暂无认证

  • 0浏览

    0关注

    1317博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

中断向量表

顺其自然~ 发布时间:2021-01-21 13:34:06 ,浏览量:0

中断向量表(interrupt vector table,IVT)是中断源的识别标志,可用来形成相应的中断服务程序的入口地址或存放中断服务程序的首地址称为中断向量。在Pc/AT中由硬件产生的中断标识码被称为中断类型号(当然,中断类型号还有其他的产生方法,如指令中直接给出、CPU自动形成等),即在中断响应期间8259A产生的是当前请求中断的最高优先级的中断源的中断类型号。中断类型号和中断向量之间有下面的关系: 中断类型号×4=存放中断向量的首地址 有了存放中断向量的首地址,从该地址开始的4个存储单元中取出的就是中断服务程序的入口。

介绍

是指中断服务程序入口地址的偏移量与段基值,一个中断向量占据4字节空间。中断向量表是8086系统内存中最低端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 中断

保护模式

在Linux下(保护模式),没有使用BIOS设置的中断向量表,0x00 ~ 0x1F是CPU保护模式下的默认中断向量,而0x20开始,都是被Linux系统重新设置的。

X86占用的中断向量表如下:

向量号

助记符

说明

类型

错误号

产生源

0

#DE

除出错

故障

DIV或IDIV指令。

1

#DB

调试

故障/陷阱

任何代码或数据引用,或是INT 1指令。

2

--

NMI中断

中断

非屏蔽外部中断。

3

#BP

断点

陷阱

INT 3指令。

4

#OF

溢出

陷阱

INTO指令。

5

#BR

边界范围超出

故障

BOUND指令。

6

#UD

无效操作码

故障

UD2指令或保留的操作码。

7

#NM

设备不存在

故障

浮点或WAIT/FWAIT指令。

8

#DF

双重错误

异常终止

有(0)

任何可产生异常、NMI或INTR的指令。

9

--

协处理器段超越(保留)

故障

浮点指令

10

#TS

无效的任务状态段TSS

故障

任务交换或访问TSS

11

#NP

段不存在

故障

加载段寄存器或访问系统段

12

#SS

堆栈段错误

故障

堆栈操作或SS寄存器加载

13

#GP

一般保护错误

故障

任何内存引用和其他保护检查

14

#PF

页面错误

故障

任何内存引用

15

--

(intel保留)

 

 

16

#MF

x87 FPU浮点错误

故障

 

17

#AC

对齐检查

故障

有(0)

对内存中任何数据的引用。

18

#MC

机器检查

异常终止

错误码(若有)和产生源与CPU类型有关。

19

#XF

SIMD浮点异常

故障

 

Linux自己设置的中断以后再添加。

关注
打赏
1662339380
查看更多评论
立即登录/注册

微信扫码登录

0.0412s