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

时间:2013-12-20 16:29:37

标签: assembly x86 qemu

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

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

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

2 个答案:

答案 0 :(得分:1)

检查代码段选择器的DPL。

答案 1 :(得分:0)

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

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

HTH