x86中斷(一)-中斷分類
一、中斷分類
x86系統支援256箇中斷源,每個中斷源使用0~255數字標識,該標識稱作中斷向量號(即CPU中斷源的中斷號,要與外部中斷的中斷號IRQ n相區別),CPU通過獲取中斷向量號識別中斷源。256箇中斷源可以分為:
其中:
1)內部中斷:由CPU內部事件及執行軟中斷指令產生,由除法中斷、溢位中斷、單步中斷、斷點中斷、軟體中斷組成;
2)外部中斷:x86 CPU為外部中斷只提供了NMI、INTR兩個引腳;其中外部不可遮蔽中斷如匯流排錯誤、電源錯誤、記憶體錯誤等引起的中斷,通過NMI引腳提供給CPU;外部可遮蔽中斷通過INTR引腳向CPU傳遞中斷
二、中斷向量及中斷源
CPU中斷向量
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 中斷 |