POPAD 把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈.
没弹出一个ESP指针改变一下
当弹出到送到ESP寄存器的时候 ESP的值被改变啦吧?
接下来弹出送到EBX 这时候ESP的值被上次出栈改变掉了 不会是指向原来的地址了吧!
这样后面的出栈操作怎么继续 还是怎样的啊?
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
1. pusha/pushad会保存sp/esp。
2. pushad/popad的栈指针是后调整的。
3. 你都知道“PUSHAD功能描述中是说保存未执行命令时的ESP值”,矛盾在哪里?压栈之后才自减。