将地址弹出到寄存器中

POPing the address into a register

有没有办法弹出栈顶的地址而不是内容?我想把地址存入一个寄存器,以后用它来操作程序。

在 AT&T 语法中:

leaq (%rsp), %rax

在 Intel 语法中:

leaq rax, [rsp]

或您需要使用的任何寄存器。 rax 仅作为示例提供。 lea 命令将指定的 地址 加载到寄存器中,而不是 内容 。有关详细信息,请参阅 What's the purpose of the LEA instruction?

您也可以使用简单的 mov:

mov %rsp, %rax

mov rax, rsp

如果您需要实际修改堆栈指针,只需添加所需的字节数即可。