有没有办法弹出堆栈顶部的地址而不是内容?我想把地址放到一个寄存器中,然后用它来操作程序。
答案 0 :(得分:3)
在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
如果你需要实际修改堆栈指针,你可以简单地添加它所需的字节数。