2011-06-02 8 views
0

Si j'ai une instruction IA32 comme ce qui suit:Question sur instruction de Ica, IA32

lea 0x4(x1, x2, x3), %eax 

Que x1, x2 et x3 représentent? Merci.

+2

duplication possible de [x86 asm: Quel est le but de l'instruction LEA?] (Http://stackoverflow.com/questions/1658294/x86-asm-whats-the-purpose-of-the-lea-instruction) –

Répondre

4

Si vous voulez dire "qu'est-ce que c'est," suivez le lien dans le commentaire de Greg. Si votre question concerne la syntaxe et que vous connaissez la syntaxe Intel (mais pas la syntaxe AT & T), x1 est la base, x2 est l'index et x3 est l'échelle (avec 0x4 étant le déplacement). Ainsi,

lea 0x4(x1,x2,x3),%eax 

équivaut à

lea eax,[x1+x3*x2+4] 

Voir this article sur SourceForge pour en savoir plus.

0

Ils sont une base registre, un indice registre, et une étendue de mesure. Ainsi, il est utile pour calculer l'adresse d'un élément d'une base matrice des éléments de taille échelle en position index, soit dans C:

base[index] 

échelle sera 1 pour un char tableau, 2 pour un court tableau, ... sur des compilateurs C typiques pour x86.