这两条线有什么不同?
push eax
mov [esp], eax不会将eax推送到堆栈上( esp所指向的位置就像mov esp,eax一样?)
发布于 2013-09-06 22:30:43
"push“会自动增加"esp”(堆栈指针)的值。"mov“不会。所以如果你想把多个项目放在堆栈上,使用push,你只需这样做:
push eax
push ebx
...使用mov,要获得相同的结果,您需要:
sub esp,4
mov [esp], eax
sub esp,4
mov [esp], ebx
...关于push的好处是有一个相反的操作,pop,它允许你以相反的顺序把东西拉回来。当然,这就是堆栈的全部内容。:)
https://stackoverflow.com/questions/18660148
复制相似问题