2017-09-13 72 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