汇编语法问题

来源:百度知道 编辑:UC知道 时间:2024/09/23 19:39:52
xchg eax, [esp]
这里[esp]是不是代表一个指针?
如果我要恢复之前eax的值,是否可以这样写:
xchg eax, [esp]
...
xchg eax, [esp]或者mov eax, [esp]

谢谢高手们!

xchg语句是用来相互交换用的!!

如你所说的 xchg eax, [esp]

就是将栈顶[esp]的值赋给了eax,将eax的值赋给了栈顶[esp]

即:当eax=11而[esp]的值是22,在xchg eax,[esp]之后
eax=22,[esp]=11。

对于恢复eax的值,如果你原来是通过push eax来保存的
则在对应的位置可以使用pop eax来恢复!

这里esp可以说是一个指针,他始终执行堆栈的顶部,而[esp]
的意思就是从esp所指向的位置取值。

还有什么问题可以随时通过短消息联系我!!

正如你所说, 这里[esp]代表一个指针。

xchg 用来交换
如果你要恢复之前eax的值,最好你使用mov eax, [esp]
而不是xchg eax, [esp]