2011-04-27 4 views
1

Je voudrais savoir s'il y a une différence entre:registre adressage indirect

MOV [BX] + 20, AX 

et

MOV [BX + 20], AX 

Mon raisonnement est que, pour le 1er cas, nous passons la valeur de AX + 20 dans la adresse BX

Et pour le 2ème cas, nous passons la valeur de AX dans l'adresse BX+ 20

Merci.

Répondre

1

Votre raisonnement sur le premier cas est faux. Ce n'est pas une construction valide (sauf si vous avez une macro définie pour le transformer en 2 instructions). Vous ne pouvez pas coller une valeur ADD au milieu d'un MOV. Vous ne pouvez utiliser que le décalage immédiat de l'adresse (deuxième cas).

2

Certains compilateurs d'assembleurs permettent les deux combinaisons. Cependant, le débogueur devrait vous donner une bonne réponse!

Test.asm.5: MOV [BX] + 20, AX 
004552B4 894314   mov [bx+$14],ax 
Test.asm.6: MOV [BX + 20], AX 
004552B7 894314   mov [bx+$14],ax