执行popfd前:
EFL = 00200202
[ESP] = FFFFFAFF
执行popfd后:
EFL = 00244AD7
不等于[ESP]中的FFFFFAFF,什么原因导致的呢?
POPFD不是简单把[ESP]赋值给EFLAGS
某些虚拟机(CPU模拟器)简单的把[ESP]值pop给了ELF,导致popfd后-》再pushfd-》再pop出来的值是相同的,实际如上,应该是不同的,popfd只对某些位有影响。
这应该算是某些CPU模拟器的BUG.
执行popfd前:
EFL = 00200202
[ESP] = FFFFFAFF
执行popfd后:
EFL = 00244AD7
不等于[ESP]中的FFFFFAFF,什么原因导致的呢?
POPFD不是简单把[ESP]赋值给EFLAGS
某些虚拟机(CPU模拟器)简单的把[ESP]值pop给了ELF,导致popfd后-》再pushfd-》再pop出来的值是相同的,实际如上,应该是不同的,popfd只对某些位有影响。
这应该算是某些CPU模拟器的BUG.
转载于:https://www.cnblogs.com/blueprincess/p/3655628.html