使用索引寻址方式将地址移动到寄存器

Move address to register by using the indexed addressing mode

是否可以使用索引寻址模式语法计算地址并将其存储到寄存器中?类似于以下(错误的)表达式(在 AT&T 汇编语法中):

movl $dataarray(,%edi,8), %eax

我知道索引寻址方式可以用来移动数据:

movl dataarray(,%edi,8), %eax

但是,在这种情况下,我想做的是将%edi索引的dataarray的元素的地址存储到%eax注册.

正如 中所建议的那样,lea 指令可用于该目的:

leal dataarray(,%edi,8), %eax

这样,地址(并且不是那个地址的值,因为它与 mov 指令一起出现)被计算并存储到 eax 寄存器中。