【发布时间】:2021-05-11 11:58:06
【问题描述】:
我无法在这个 stackoverflow 线程中掌握答案。 https://stackoverflow.com/a/1395646
答案中间写着Most function prologs look something like:...
据我了解上述答案中的说明 --> 第一条指令将 ebp 推入堆栈。然后我们将 esp 移到 ebp 中。最后我们从 esp 中减去 20,使 esp 点 20 地址从原来的位置向下。
根据上面的说明,我将堆栈想象成这样。
high address
__________________________
| (an address) | <-- ebp
..........................
..........................
| | <-- esp points to an address 20
| | bytes lower
| |
| |
| |
|________________________|
low address
如果这个可视化是正确的,那么当你甚至没有任何关于可以放置下一个局部变量的位置的引用时,你怎么能将任何东西压入堆栈呢?
【问题讨论】:
标签: assembly memory x86 stack instructions