J'ai l'adresse de mon tableau (passé comme un pointeur vers la fonction) dans le registre esi. Comment puis-je accéder à une cellule particulière du tableau? i.e:Accéder au tableau dans MASM
my_array[a + b * c]
où c
est constante.
J'ai l'adresse de mon tableau (passé comme un pointeur vers la fonction) dans le registre esi. Comment puis-je accéder à une cellule particulière du tableau? i.e:Accéder au tableau dans MASM
my_array[a + b * c]
où c
est constante.
Vous pouvez directement déplacer comme suit également:
MOV EDX, [ESI + 4*EBX]
Pour un tableau statique, vous pouvez utilise en réalité deux registres à la fois pour l'indexer, mais en utilisant l'adresse de base du tableau comme déplacement de 32 bits dans the addressing mode. Cela ne fonctionne que pour le code indépendant de la position.
MOV EDX, my_array[ECX + 4*EBX]
Au lieu d'utiliser deux registres différents, vous pouvez utiliser le même registre deux fois pour simuler un facteur d'échelle de 3 (ebx + ebx*2
), 5 ou 9.
Le lien est mort. – ApproachingDarknessFish
Correction du lien. –