Salut,
je regarde depuis environ 2 semaines l'assembleur, j'ai commencé par lire le tuto de Lord Noteworthy.Actuelement je regarde ce cours :
http://e-ressources.univ-avignon.fr/...ule_cours.html
Et j'ai une question portant sur cette partie du cours :
http://e-ressources.univ-avignon.fr/...TD_15_3_3.html
Le texte de la correction :
Pourquoi c'est de 0x7FFFFFFF a 0x80000000, et pas de 0xFFFFFFFF a 0x00000000 ?A l'entrée de la boucle, %ecx contient la valeur 0. La valeur 1 est ajoutée à %ecx à chaque itération. « jno Boucle » réalise un saut vers « addl $1, %ecx » lorsque le drapeau OF du registre d'état RFLAGS est à 0. Autrement dit, le saut sera effectué tant que l'opération « addl $1, %ecx » ne provoque pas de débordement sur les entiers signés. Lorsque %ecx passe de 0x7FFFFFFF à 0x80000000, 0F passe à 1 et l'instruction « jno » ne réalise pas le saut. L'exécution se poursuit donc à l'instruction qui suit immédiatement « jno Boucle ». La valeur de %ecx est alors 0x80000000.
il me semblais que la valeur maximal des entier signé (que ce soit sur 8bits, 16, bits ect) était toujours égal a 0xFF.....
merci bien, a+++
Partager