将地址弹出到寄存器中
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
如果您需要实际修改堆栈指针,只需添加所需的字节数即可。
有没有办法弹出栈顶的地址而不是内容?我想把地址存入一个寄存器,以后用它来操作程序。
在 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
如果您需要实际修改堆栈指针,只需添加所需的字节数即可。