加载地址位置以使用x86-64中的内存寻址模式进行注册

问题描述 投票:1回答:1

我正在尝试将指针加载到%rdi寄存器中。我想要的内存地址存储在$ rsp的内存位置之后10个字节。

我将如何为此编写汇编代码?这是我到目前为止的内容

movq 10(%rsp),%rdi
ret
assembly x86 x86-64 cpu-registers
1个回答
0
投票

尝试leaq指令,它通常用于计算地址偏移量,或像这样的简单乘加计算:

leaq 4(%rsi,%rdi,2), %rdx    # rdx = 4 + rsi + (rdi << 1)

所以您需要的是

leaq 0xa(%rsp),%rdi # assume you need an offset of decimal number 10
ret
© www.soinside.com 2019 - 2024. All rights reserved.