【发布时间】:2014-10-03 12:53:45
【问题描述】:
假设我们有一个 16 字节的数组和一些 4 字节的整数。在调用函数之前,我们将数组压入堆栈;然后我们压入整数。
现在,我的理解是基指针的“下方”是返回地址和参数;正上方和顶部的堆栈指针“下方”是我们压入堆栈(和寄存器)的局部变量。
如何确定数组的起始地址以及整数的位置?简单地对数组执行“ebp - 16”,对整数执行 -20 是否准确,或者是否有我遗漏的细节?我们是否也可以参考这些与 esp 相关的东西,或者这是非常规的?
此外,是否有可能以不同方式处理此寻址的实现?
最后,是否有必要在我们的函数结束之前从堆栈中弹出这些东西?
【问题讨论】:
标签: assembly x86 memory-address