7.5.1 分類
1. 中斷
由外部事件引起的中斷稱為外部中斷。這里有我們熟悉的可屏蔽中斷 INTR和非屏蔽中斷NMI。
2. 異常
如上所述,在8088中的內部中斷,如除法、單步、溢出、軟件中斷(INTn),均被列入異常中。有人也將它們稱之為陷阱。


7.5.2 中斷或異常的響應過程
1.優(yōu)先級
前面已經提到80386之后的處理器有許多中斷和異常發(fā)生,它們的優(yōu)先級如表7.4所示。
2.實地址模式下的響應過程
(1) 獲得向量碼
(2) 進行斷點保護
(3) 獲得查表值
查表值=基地址+中斷向量碼×4


3. 保護模式下中斷響應過程
(1) 中斷描述符表
(2) 錯誤碼
(3) 響應過程


由圖7.22可見,中斷或異常發(fā)生后,從CPU獲取它們相應的中斷向量碼開始中斷響應。
①由IDTR的基地址和中斷向量碼,處理器計算出查表值:查表值=基地址+中斷向量碼×8
②由中斷描述符中規(guī)定的選擇符,在GDT(全局描述符表)或LDT(局部描述表)中查到代碼段描述符。
③由段描述符取出基地址(線性基地址),將其與中斷描述符中的偏移量結合在一起,構成中斷服務程序的入口地址,即中斷服務入口=段線性基地址+偏移量
(4) 斷點保護
在圖722中未能描繪出在中斷響應過程中處理器對斷點的保護。第5章說明了8088中斷響應時,處理器如何進行斷點保護,它將FLAGS、CS和IP分別保存在用戶堆棧中。
在80386以后的處理器中,處理器將斷點信息保存在特權級最高的核心堆棧中。這是因為后來的處理器都支持多級堆棧。在核心堆棧中所保存的斷點信息如圖7.23所示。


