Je recommande également d'utiliser D86 (which comes with A86) car il vous permet de taper des instructions 8086 de manière interactive afin que vous puissiez voir ce qui se passe à tous les registres et les drapeaux après chaque instruction.
Ce code (comme d'autres l'ont souligné):
MOV AL, F2h
ADD AL, 20h
n'affecte que les drapeaux et le registre AL. Aucun autre registre à huit bits ne sera affecté (même AH). AX changera bien car il est composé de AH et AL, donc si AH était 42h:
Code AL AH AX
MOV AL,F2h F2 42 42f2
ADD AL,20h 12 42 4212
Le résultat de cette opération particulière établira le drapeau de transport et le drapeau de parité et effacer le trop-plein, zéro, signe et des drapeaux de transport auxiliaires. Vous pouvez penser que l'indicateur de débordement doit être défini, mais l'indicateur de débordement traite les valeurs comme des valeurs signées (dans ce cas -14 et 32) et l'ajout ne dépasse pas la valeur maximale signée (127).L'indicateur de retenue traite les valeurs comme des valeurs non signées (242 et 32) et l'addition dépasse la valeur non signée maximale: 242 + 32 = 274 qui est supérieure à 255, de sorte que la retenue est définie.
Puisqu'il s'agit d'un registre 8bit, le drapeau de report sera-t-il défini? – xtofl
Oui, il sera défini car il y a un débordement du registre AL. – Macmade
Merci beaucoup Macmade, je comprends maintenant beaucoup mieux les bases de l'ASM. :-) – Tal