热门问题
时间线
聊天
视角
中断旗标
来自维基百科,自由的百科全书
Remove ads
中断旗标(Interrupt flag)简称IF,是CPU状态暂存器里的一个旗标,表示CPU对可遮罩中断的处理方式[1]。若旗标设定为1
,表示接受可遮罩中断,若设为0
,可遮罩中断无效,一直到再设定为1
后才有效。中断旗标不影响不可遮罩中断(NMI)或是用INT指令产生的软件中断。
此条目或其章节极大或完全地依赖于某个单一的来源。 (2025年9月7日) |
设定和清除
在X86架构的系统中,CLI指令(Clear Interrupt)和STI指令(Set Interrupt)分别可以设定和清除中断指令。POPF(Pop Flags)会从堆叠中取出一个字,存到旗标暂存器,也可能会因此变更中断旗标的内容[1]。
优先权层级
在支援特权模式的系统中,只有特权应用程序(一般是操作系统内核)才能修改中断旗标。在X86系统,上述说明只适用在保护模式的程式 (较早期的真实模式程式,随时可以修改中断旗标)。CLI和STI是特权指令,若不是特权模式的应用程序想要执行,会出现一般保护错误。若是非特权模式的应用程序执行POPF,不会变更中断旗标。
中断无效
在x86指令集架构中,CLI多半会是单处理器系统中的同步机制。例如,操作系统会用CLI关闭中断,让内核程式(多半是驱动程序)可以避免中断处理程式的竞争危害。若要在没有暂停任一程式的情形下,修改数个相关的数据结构,此作法是必要的。
中断有效
X86指令集架构的STI可以设定中断旗标,因此允许接受中断。
有些允许中断的指令中,中断会在执行下一个指令时才有效。此情形下,在关闭中断后立刻开启中断,会让中断不被认可。
多处理器下的考量
相关条目
- 中断
- 旗标暂存器
- Intel 8259
- 进阶可编程化中断控制器(APIC)
- 中断处理程式
- 不可遮罩中断(NMI)
- 可编程中断控制器(PIC)
- X86
参考资料
外部链接
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads