-
中斷屏蔽
鎖定
- 中文名
- 中斷屏蔽
- 處理器
- 接受和處理來自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(關中斷)。
中斷屏蔽示例
典型的非屏蔽中斷源的例子是電源掉電,一旦出現,必須立即無條件地響應,否則進行其他任何工作都是沒有意義的。
注意,可屏蔽中斷和非可屏蔽中斷都屬於硬件中斷(外部中斷)。軟中斷既不屬於可屏蔽中斷,也不屬於非可屏蔽中斷。