不可屏蔽中斷

不可屏蔽中斷

不可屏蔽中斷屬於 中斷請求 的一種。外部不可屏蔽中斷請求經由專門的CPU針腳NMI,通知CPU發生了災難性事件,如電源掉電、匯流排奇偶位出錯等。內部不可屏蔽中斷請求是CPU內部自發產生的,如存儲器讀寫出錯、溢出中斷、除法出錯中斷等。NMI線上中斷請求是不可屏蔽的(既無法禁止的)、而且立即被CPU鎖存。因此NMI是邊沿觸發,不需要電平觸發。NMI的優先順序也比INTR高。不可屏蔽中斷的類型指定為2,在CPU響應NMI時,不必由中斷源提供中斷類型碼,因此NMI響應也不需要執行匯流排周期INTA。

不可中斷


內部不可屏蔽中斷是通過軟體調用的中斷以及由執行指令過程中產生的“異常”。包括溢出中斷、除法出錯中斷、INT n 指令中斷以及單位元組 INT 3 指令中斷。
不可屏蔽中斷從源頭分,既可由 CPU 內部產生,也可由外部 NMI 針腳產生。

溢出中斷


如果上一條指令使標誌寄存器(Flags Register)中的溢出標誌(Overflow Flag)置 1 ,那麼在執行溢出中斷指令(INTO)時,立即產生一個 4 型中斷(中斷類型碼為 4 )。

除法中斷


在執行除法指令 DIV 或 IDIV 后,如果商大於規定的目標操作數(即目標寄存器所能表達的範圍),則 CPU 立即產生一個 0 型中斷。

n指令中斷


8086/8088 的指令系統中有一條 INT 指令,當執行完這條指令后就立即產生中斷。編在該指令中的中斷類型碼 n 告訴 CPU 調用哪個服務程序來處理這個中斷。

斷點中斷


斷點(Breakpoint Interrupt)中斷即單位元組 INT 3指令中斷,中斷類型碼為 3,3型中斷是專供斷點用的,斷點一般可以處於程序的任何位置,在斷點處,停止正常執行過程,以使執行某種類型的特殊處理。通常,在調試時把斷點插入程序的關鍵之處,以便顯示寄存器、儲存單元的內容。