中斷處理的全過程分為中斷檢測、中斷響應和中斷處理3個階段。
1.中斷檢測
中斷檢測在每條指令結束時進行,檢測是否有中斷請求或是滿足異常條件。
2.中斷響應
中斷響應是由處理器內部硬件完成的中斷序列,而不是由程序執行的。在Intel 80x86中,中斷響應過程的操作如下:
●對可屏蔽中斷,從8259中斷控制器芯片讀取中斷向量號;
●將標志寄存器EFLAG,CS和IP壓棧;
●對於硬件中斷,復位標志寄存器中的IF和TF位,禁止可屏蔽外部中斷和單步異常;
●根據中斷向量號,查找中斷向量表,根據中斷服務程序的首址轉移到中斷服務程序執行。
3.中斷處理即執行中斷服務程序。中斷服務程序的主要內容如下:
●保存中斷服務程序將要使用的所有寄存器的內容,以便於在退出中斷服務程序之前進行恢復;
●如果中斷向量被多個設備所共享,為了確定產生該中斷信號的設備,需要輪詢這些設備的中斷狀態寄存器;
●獲取中斷相關的其他信息;
●對中斷進行具體的處理;
●恢復保存的上下文;
●執行中斷返回指令,使CPU的控制返回到被中斷的程序繼續執行。