Qu'est-ce que « -0x1 (% edx,% ecx, 1) » signifie la production objdump?
Question
Utilisation objdump pour comprendre un binaire et je me rends compte que je ne suis pas assez couramment dans la syntaxe de l'ASM. Que signifie la notion suivante signifie?
xor %al,-0x1(%edx,%ecx,1)
Et pendant que vous y êtes - que dois-je chercher pour trouver de la documentation sur ces notions
La solution
Les parenthèses sont des décalages de mémoire:
-0x1(%edx,%ecx,1)
(AT & T syntaxe) est égale à [edx+ecx*1-1]
(syntaxe Intel)
Guide rapide pour AT & T syntaxe d'assemblage (selon votre demande).
Autres conseils
Ceci est un OU exclusif avec le contenu de l'octet de poids faible (% Al) de la « a » enregistrement et le contenu de la mémoire à l'adresse qui est la somme des (% EDX) de large registres d »32 bits , 'c' multiplié par 1 (% ecx, 1) et -1. Le résultat est réécrite% al. En C
al ^= (char*)(edx+ecx*1 - 1);
Vous pouvez rechercher des trucs comme ça ou sandpile le processeur Intel / documentation amd.