【发布时间】:2021-07-30 15:26:56
【问题描述】:
push rbp
mov rbp, rsp
mov DWORD PTR [rbp-0x4],edi
在汇编函数序言中,push rbp 不是已经将其值移动到 rsp 吗?为什么mov rbp, rsp 指令再次将相同的rsp 值移动到rbp?是必要的还是多余的?
【问题讨论】:
-
这不是
push所做的。再次阅读它的描述。它将值从rbp移动到rsp指向的内存位置(在减8 之后)。 -
push rbp将rsp减8,然后将rbp的prior 值写入rsp指向的内存 .mov rbp, rsp然后将新的rsp值加载到rbp寄存器中。
标签: assembly x86 callstack stack-frame