Bonjour,

J'ai du mal à comprendre ce bout de code :
(c'est dans une boucle qui incrémente l'indice tant qu'il est inferieur à la taille du buffer)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
mov indice, %eax
add buffer, %eax
movsbl (%eax), %eax
buffer = 0x4592f501 0x41414141

J'execute en pas à pas, et je vous note, ce que j'en pense.

Indice = 0
eax pointe donc sur 0x4592f501
eax = 0x1
Ok, c'est le dernier bit de buffer[0] (buffer[0] étant égal à 0x4592f501).

Indice = 1
eax pointe donc sur 0x414592f5
eax = 0xfffffff5
Et c'est là que je coince..car pour moi eax devrait valloir 0xf5...

Je dois me tromper quelque part...
Merci à ceux qui pourront m'éclairer un peu.

Sorry

Mise à jour :

Je continue de dérouler le programme :

Indice = 3
eax pointe donc sur 0x41414592
eax = 0xffffff92
Idem je ne comprends pas pourquoi il y a tous ces f...

Indice = 4
eax pointe donc sur 0x41414145
eax = 0x45
Là ok !

Indice = 5
eax pointe donc sur 0x41414141
eax = 0x41
Là ok aussi !

Etc...

Donc il y a deux itérations étranges que je ne saisie pas