Bonjour,
Je suis rendu en ce moment dans mon livre au chapitre où ils traitent des instructions cmp et de ses dérivées (jumps conditionnels).
L'auteur, après avoir mentionné que, dans l'instruction
L'ordinateur effectue l'opération "op1 - op2", comme dans une instruction "sub", à la seule différence que l'opérande 1 n'est pas modifiée, puis le processeur interprète les bits de EFLAGS pour savoir si op1 est plus grand, plus petit ou égal à op2.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2cmp op1, op2
Il donne en gros ce schéma:
Voilà, je ne comprends pas dutout. EN effet, il semble y avoir des CF=1 là ou il ne devrait pas y en avoir...
Par exemple, prenons la ligne 2.
Si je fais "3B - 15" (en hex), cela donne
Ici, le résultat de l'addition a bien 9 bits, donc un "carry out". Par conséquent, le bit CF devrait être 1, pas 0. Pourquoi en est-il autrement ici?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 11101011 + 00111011 ------------ 100100110
Cordialement,
Array
Partager