1 -- 关于中断向量的几点注释


1. 系统引导时,中断向量表放在内存何处?

     系统刚引导时,内存0x00000到0x0003FF共1KB的空间用于存放中断向量表。每个中断向量占用4个字节,共可存储256个中断向量。

2. 系统引导时,处在实模式下,只可寻址1MB,为什么要用4个字节来寻址中断呢处理程序?

     刚看到的时候,我也很纳闷。我们都知道编程的时候指针都是4个字节的,可以寻址4GB,在实模式下完全可以少用字节啊?其实实模式的内存选址方式是:段值 * 16 + 偏移值,就是内存地址。而这4个字节中,2个字节存储段值,两外两个存储偏移值。所以共有4个字节。

bios 中断例程 bios中断向量表_中断向量


3. 这篇资料是看书和从网上整理而来的,不同的资料间往往有些冲突的地方,这样就难免有些错误,以后再做修订。

2 -- 中断向量表


内存地址(十六进制)

对应向量号(十六进制)

中断用途

BASIC中断向量

0x3C4 - 0x3FF

F1-FF

未使用

0x218 - 0x3C3

86-F0

BASIC程序运行时提供给BASIC解释程序作用

0x200 - 0x217

80-85

为BASIC保留

0x1E0 - 0x1FF

78-7F

未使用

0x1DC - 0x1DF

77

硬件中断15

0x1D8 - 0x1DB

76

硬件中断14

0x1D4 - 0x1D7

75

硬件中断13

0x1D0 - 0x1D3

74

硬件中断12

0x1CC - 0x1CF

73

硬件中断11

0x1C8 - 0x1CB

72

硬件中断10

0x1C4 - 0x1C7

71

硬件中断9

0x1C0 - 0x1C3

70

硬件中断

0x1A0 - 0x1BF

68-6F

未使用

0x180 - 0x19F

60-67

为用户程序保留的单元

0x128 - 0x17F

4A-5F

保留

0x124 - 0x127

49

指向键盘增强服务变换表

0x120 - 0x123

48

PC机使用,用于把PC机的键盘代码变换为标准的键盘代码

0x11C - 0x11F

47

保留

DOS中断向量

0x118 - 0x11B

46

第二硬盘参数块

0x114 - 0x117

45

保留

0x110 - 0x113

44

PC机使用,用于指向低分辩率图形字符参数表

0x108 - 0x10F

42-43

未使用

0x104 - 0x107

41

硬盘参数块

0x0C0 - 0x0CB

34-40

未使用

0x0CC - 0x0CF

33

鼠标中断

0x0C0 - 0x0CB

30-32

未使用

0x0BC - 0x0BF

2F

多路服务中断

0x0B8 - 0x0BB

2E

基本SHELL程序装入

0x0AC - 0x0B7

2B-2D

未使用

0x0A8 - 0x0AB

2A

Microsoft 网络接口

0x0A4 - 0x0A7

29

快速写字符

0x0A0 - 0x0A3

28

DOS安全使用

0x09C - 0x09F

27

终止并驻留程序

0x098 - 0x09B

26

绝对磁盘写功能

0x094 - 0x097

25

绝对磁盘读功能

0x090 - 0x093

24

严重错误处理(用户不能直接调用)

0x08C - 0x08F

23

Ctrl+Break 处理地址(用户不能直接调用)

0x088 - 0x08B

22

程序中止时DOS返回地址(用户不能直接调用)

0x084 - 0x087

21

DOS系统功能调用

0x080 - 0x083

20

DOS中断返回

数据表指针

0x07C - 0x07F

1F

图形字符扩展码

0x078 - 0x07B

1E

软盘参数块

0x074 - 0x077

1D

视频参数块

提供给用户的中断

0x070 - 0x073

1C

定时器控制的软中断

0x06C - 0x06F

1B

Ctrl + Break控制的软中断

BIOS中断

0x068 - 0x06B

1A

时钟管理

0x064 - 0x067

19

引导装入程序--系统自举

0x060 - 0x063

18

BASIC入口代码--ROM BASIC入口代码

0x05C - 0x05F

17

打印机输出

0x058 - 0x05B

16

键盘I/O

0x054 - 0x057

15

盒式磁带I/O

0x050 - 0x053

14

RS-232串行通讯口I/O

0x04C - 0x04F

13

磁盘I/O

0x048 - 0x04B

12

测定存储器容量

0x044 - 0x047

11

设备检验

0x040 - 0x043

10

屏幕显示I/O

8259中断向量

0x03C - 0x03F

F

LPT2控制器中断--并行打印机(IRQ7)

0x038 - 0x03B

E

磁盘控制器中断--软磁盘(IRQ6)

0x034 - 0x037

D

LPT2控制器中断--硬磁盘(并行口)(IRQ5)

0x030 - 0x033

C

异步通信(primary)--串行通信接口1(IRQ4)

0x02C - 0x02F

B

异步通信(secondary)--串行通信接口2(IRQ3)

0x028 - 0x02B

A

彩色/图形(IRQ2)

0x024 - 0x027

9

键盘(IRQ1)

0x020 - 0x023

8

定时器(IRQ0)

8088中断向量

0x01C - 0x01F

7

保留

0x018 - 0x01B

6

保留

0x014 - 0x017

5

打印屏幕

0x010 - 0x013

4

溢出

0x00C - 0x00F

3

断点指令

0x008 - 0x00B

2

非屏蔽中断

0x004 - 0x007

1

单步(用于DEBUG)

0x000 - 0x003

0

除以零