2014-05-04 3 views
0

Je travaille sur le désassemblage d'un programme en c en utilisant gdb et l'assemblage en & t montre ce qui suit. Je ne suis pas exactement sûr de la façon dont la soustraction fonctionne ici. Comme je l'interprète, la valeur dans% edx aura l'emplacement de mémoire de% eax soustraite de lui. A.k.a% edx =% edx - (% eax). Les valeurs que je reçois lors de l'impression des valeurs de registre après que cela se produise sont étranges et je ne suis pas sûr de ce qu'il fait exactement. Tout point dans la bonne direction serait apprécié.Que fait réellement l'opération d'assemblage att [sub (% eax), edx]?

Répondre

4

eax est utilisé comme pointeur sur un entier de 4 octets (peut être non signé). L'équivalent c serait:

edx -= *eax; 
*eax = edx; 
eax++; 
Questions connexes