2010-05-21 4 views
4

Que fait cette instruction?Quelle est la signification de MOV (% r11,% r12,1),% edx?

mov (%r11,%r12,1), %edx 
+4

Non étiqueté comme devoir, parce que ce n'est peut-être pas le cas. Ne pas donner aux gens le bénéfice du doute est un excellent moyen de décourager les nouveaux utilisateurs. – danben

+2

Très bien, je ne vais pas nourrir votre pêche à la traîne. Il suffit de dire que les étiquettes doivent catégoriser les questions, ne pas exprimer votre propre opinion. – danben

+0

Voir aussi [wiki tag syntaxe AT & T] (https://stackoverflow.com/tags/att/info) pour plus de détails sur la syntaxe, et des liens vers d'autres documents. –

Répondre

7

Regardez here. Il dit

Dans AT & T Syntaxe, la mémoire est référencée de la manière suivante,

segment-override:signed-offset(base,index,scale) 

vers le bas sur la page il y a quelques exemples. Je trouve cela le meilleur:

GAS memory operand NASM memory operand 
------------------ ------------------- 
(%ecx,%ebx,2) [ecx+ebx*2] 

mov source, destination AT & T copies de syntaxe, la valeur de la source à la destination. Tenez également compte de la taille d'edx. Combien d'octets (4) croyez-vous que mov va copier?

-2

mov (%r11,%r12,1), %edx Cette instruction est utilisée pour calculer l'adresse (mode d'adressage indexé).

  • %r11 est une adresse de base
  • %r12 est un indice
  • et 1 est un multiplicateur

C'est un travail comme celui-ci:

adres = adres de base + index * multiplicateur

base adres et multipler doivent être des constantes (l'adresse de base peut être enregistrée), l'index doit être enregistré.

+0

C'est une lecture de la mémoire, pas un calcul d'adresse. –

Questions connexes