HLT指令导致QEMU中的一般保护错误

cla*_*pas 7 x86 assembly qemu

我在QEMU下运行我的保护模式内核,并且在尝试执行汇编程序HLT指令时导致一般保护错误.CPL为0,EFLAGS中IOPL为0,启用中断.

这可能是QEMU问题还是我错过了什么?

在模拟SMP(对称多处理器)时会发生这种情况.

Nei*_*ill 0

它可能没有帮助,但我们一直将 asm (“hlt”) 与 qemu non smp 一起使用,并且工作正常。

然而调用它可能会导致中断有机会运行。那么您确定 EIP 是 asm hlt 吗?如果是这样,您应该 objdump .o 以确保编译器生成您认为的内容。