複製鏈接
請複製以下鏈接發送給好友

中斷屏蔽

鎖定
中斷由異步的外部事件引起。外部事件及中斷響應與正在執行的指令不存在關係。80386有兩根引腳INTR和NMI接受外部中斷請求信號,INTR接受可屏蔽中斷請求。在80386中,標誌寄存器EFLAGS中的IF標誌決定是否屏蔽可屏蔽中斷請求。
中文名
中斷屏蔽
處理器
接受和處理來自NMI的中斷請求
中斷向量號
固定為2
結束以
IRET指令

目錄

中斷屏蔽簡介

處理器必須接受和處理來自NMI的中斷請求。在80386系統中,處理器在響應NMI的中斷向量號固定為2。為了避免不可屏蔽中斷的嵌套,當接受到一個NMI中斷請求時,處理器自動屏蔽所有的NMI的中斷請求,直到執行中斷指令IRET後才重新開放NMI中斷請求,所以,NMI處理程序應以IRET指令結束。
什麼叫屏蔽中斷?允許中斷?怎樣實現?
按照是否可以被屏蔽,可將中斷分為兩大類:不可屏蔽中斷(又叫非屏蔽中斷)和可屏蔽中斷。不可屏蔽中斷源一旦提出請求,CPU必須無條件響應,而對可屏蔽中斷源的請求,CPU可以響應,也可以不響應。CPU一般設置兩根中斷請求輸入線:可屏蔽中斷請求INTR(Interrupt Require)和不可屏蔽中斷請求NMI(NonMaskable Interrupt)。對於可屏蔽中斷,除了受本身的屏蔽位控制外,還都要受一個總的控制,即CPU標誌寄存器中的中斷允許標誌位IF(Interrupt Flag)的控制,IF位為1,可以得到CPU的響應,否則,得不到響應。IF位可以由用户控制,指令 STI 或 Turbo c 的 Enable() 函數,將IF位置1 (開中斷),指令 CLI 或 Turbo_c 的 Disable() 函數,將IF位清0(關中斷)。

中斷屏蔽示例

典型的非屏蔽中斷源的例子是電源掉電,一旦出現,必須立即無條件地響應,否則進行其他任何工作都是沒有意義的。
典型的可屏蔽中斷源的例子是打印機中斷,CPU對打印機中斷請求的響應可以快一些,也可以慢一些,因為讓打印機等待會兒是完全可以的。
注意,可屏蔽中斷和非可屏蔽中斷都屬於硬件中斷(外部中斷)。軟中斷既不屬於可屏蔽中斷,也不屬於非可屏蔽中斷。