是否可以使用索引寻址模式语法计算地址并将其存储到寄存器中?类似于以下(错误)表达式(在AT& T汇编语法中):
movl $dataarray(,%edi,8), %eax
我知道索引寻址模式可用于移动数据:
movl dataarray(,%edi,8), %eax
但是,在这种情况下,我想要做的是将dataarray
的{{1}}元素的地址存储到%edi
寄存器中
答案 0 :(得分:2)
正如this comment中已经建议的那样,lea
指令可用于此目的:
leal dataarray(,%edi,8), %eax
这样,地址(以及不该地址的值,与mov
指令一样)计算并存储到eax
寄存器中。