中斷旗標

中斷旗標（Interrupt flag）簡稱IF，是CPU狀態暫存器裡的一個旗標，表示CPU對可遮罩中斷的處理方式。若旗標設定為1，表示接受可遮罩中斷，若設為0，可遮罩中斷無效，一直到再設定為1後才有效。中斷旗標不影響（NMI）或是用指令產生的軟體中斷。

設定和清除
在X86架構的系統中，CLI指令（Clear Interrupt）和STI指令（Set Interrupt）分別可以設定和清除中斷指令。POPF（Pop Flags）會從堆疊中取出一個字，存到，也可能會因此變更中斷旗標的內容。
 優先權層級 
在支援特權模式的系統中，只有特權應用程式（一般是作業系統内核）才能修改中斷旗標。在X86系統，上述說明只適用在保護模式的程式 （較早期的真實模式程式，隨時可以修改中斷旗標）。CLI和STI是特權指令，若不是特權模式的應用程式想要執行，會出現一般保護錯誤。若是非特權模式的應用程式執行POPF，不會變更中斷旗標。

 中斷無效 
在x86指令集架構中，CLI多半會是單處理器系統中的同步機制。例如，操作系统會用CLI關閉中斷，讓内核程式（多半是驱动程序）可以避免的競爭危害。若要在沒有暫停任一程式的情形下，修改數個相關的資料結構，此作法是必要的。
 中斷有效 
X86指令集架構的STI可以設定中斷旗標，因此允許接受中斷。

有些允許中斷的指令中，中斷會在執行下一個指令時才有效。此情形下，在關閉中斷後立刻開啟中斷，會讓中斷不被認可。
 多處理器下的考量 
中斷旗標只影響單一處理器。若是多元處理器系統，中斷處理程式會使用其他的同步機制，例如多執行緒下的锁。

相關條目
 中斷

 Intel 8259
 （APIC）

 （NMI）
 （PIC）
 X86

參考資料

外部連結
 Intel 64 and IA-32 Architectures Software Developer Manuals - Retrieved 2017-09-14

Category:X86指令
Category:中断