将地址存入寄存器

时间:2015-10-05 02:53:19

标签: c assembly x86-64

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

1 个答案:

答案 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

如果你需要实际修改堆栈指针,你可以简单地添加它所需的字节数。