【发布时间】:2021-07-15 03:11:29
【问题描述】:
在x86 和x86-64 中是否有任何CPU-state 位指示处于异常/中断处理程序中?换句话说,我们能否仅根据CPU寄存器的状态来判断当前执行的是主线程还是异常处理程序?
【问题讨论】:
-
不,没有。存在表示处于 NMI 处理程序中的隐藏状态,但软件无法访问。
-
如果您想要为您正在设计的系统提供这样的指示,您可以为 IDT 中的所有条目使用不同的代码段描述符。
-
@prl:对于外部中断(不是例外),
outb(0x20, 0x20)是否仍然适用于保持 PIC 快乐(wiki.osdev.org/IDT_problems#I_can_only_receive_one_IRQ),还是仅适用于旧的传统做事方式?还是仅针对某些类型的中断?我在回答中对此感到疑惑,如果您可以将其简化为准确的内容,请随时进行编辑或评论。
标签: exception x86 x86-64 cpu-registers interrupt-handling