两行之间有什么区别
push eax
mov [esp], eax
不会将eax推入堆栈(esp指向mov [esp],eax会这样做吗?)
答案 0 :(得分:12)
“push”会自动碰到“esp”(你的堆栈指针)的值。 “mov”不会。所以如果你想用push
将多个项目放在堆栈上,你只需:
push eax
push ebx
...
使用mov
,要获得相同的结果,您需要:
sub esp,4
mov [esp], eax
sub esp,4
mov [esp], ebx
...
关于push
的好处是有反向操作,pop
允许你以相反的顺序撤回事物。当然,这就是堆栈的全部内容。 :)