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

时间:2017-09-13 10:19:33

标签: assembly x86 addressing indexed

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

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

我知道索引寻址模式可用于移动数据:

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

但是,在这种情况下,我想要做的是将dataarray的{​​{1}}元素的地址存储到%edi寄存器中

1 个答案:

答案 0 :(得分:2)

正如this comment中已经建议的那样,lea指令可用于此目的:

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

这样,地址(以及该地址的,与mov指令一样)计算并存储到eax寄存器中。