【发布时间】:2015-12-08 02:39:06
【问题描述】:
问题
考虑 GCC 编译器、AT&T 语法和 32 位汇编,两条指令相当于:
Push %eax
尝试:
我认为是下面这两个:
Addl $0x4, %esp
movl %eax, -0x4(%esp)
有人可以确认吗?如果它是错误的,请有人指出我正确的方向。谢谢!
【问题讨论】:
-
当你推送时堆栈在内存中增长,而不是向上增长。试试
subl $0x04, %esp和movl %eax, (%esp) -
哦,我很接近,谢谢。
-
是的
subl,使用等效代码查看我原始评论的更新。 -
那么这是否意味着如果我想进入堆栈中的下一个位置,我也会这样做,但使用 'movl %eax, $-0x4(%esp)' 代替?
-