执行此指令时出现异常
LFS ESI,PWORD PTR [EBP+12]
从此页面http://wiki.osdev.org/Double_Fault#Double_Fault
执行任何PUSH或POP指令或使用ESP或EBP作为基址寄存器的任何指令,而堆栈地址不是规范形式。
所以我认为这应该是 Stack-Segment Fault 。 但系统提供了一般保护异常(0D)。
有谁可以告诉我为什么会这样?
答案 0 :(得分:1)
LFS的一般保护错误发生在:
所以,问题不是指令本身,而是段描述符表。
请参阅“英特尔软件开发人员手册”第3A卷第3章: http://www.intel.com/products/processor/manuals/?wapkw=(Intel+64+and+IA-32+Architectures)