2017-09-13 73 views
1

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

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

我知道变址寻址模式,可以用于移动数据:

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

然而,在这种情况下,我想要做的是将dataarray元素的地址存储在%eax寄存器中,其索引为%edi

+7

你是指'lea'指令吗? –

+0

@MargaretBloom的确是的。谢谢。 – cppstudy

回答

2

this comment已经建议的,lea指令可以被用于该目的:

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

这样,地址(和值在该地址,因为它发生与mov指令)被计算并存储到eax寄存器中。

+0

感谢您的快速回答和解释 – cppstudy