Jean-Luc GOERIG17/36
Fonctionnement d’un processeur
Fonctionnement d’un processeur
Novembre 2007 - #071119
Registre général d’état (Flag)
Registre général d’état (Flag)
CF = Carry Flag (retenue)
PF = Parity Flag (parité)
AF = Auxiliary Flag (retenue auxiliaire)
ZF = Zero Flag (zéro)
SF = Sign Flag (signe)
TF = Trap Flag (exécution pas à pas)
IF = Interrupt Flag (interruption)
DF = Direction Flag (direction)
OF = Overflow Flag (débordement)
IOPL = Input/Output privilege level (286 et plus)
NT = Nested Task Flag (386 et plus)
Jean-Luc GOERIG18/36
Fonctionnement d’un processeur
Fonctionnement d’un processeur
Novembre 2007 - #071119
Registre général d’état (Flag)
Registre général d’état (Flag)
Les bits de ce registre sont appelés "indicateur", on peut les regrouper
en deux catégories:
Les Flags d'état : (CF, PF, AF, ZF ,SF et OF) seront modifiés par
certaines instructions. Il s'agit des instructions arithmétiques, logiques et
des instructions de comparaison (nous les verrons dans le chapitre
suivant). Les instructions de saut conditionnel testent par la suite l'état
des Flags en vue d'effectuer, ou non, un branchement.
Les Flags de contrôle : (TF, IF, DF) donnent au processeur des
indications quant au déroulement du programme. Ils peuvent être
activés ou désactivés par le programme en cours.
Remarques : Lors d'une instruction non arithmétique ou logique, les
indicateurs CF et OF sont remis à 0. Dans certains cas les indicateurs
ne sont pas modifiés, dans certains cas ils le sont et, parfois, ils sont
indéfinis...
Jean-Luc GOERIG19/36
Fonctionnement d’un processeur
Fonctionnement d’un processeur
Novembre 2007 - #071119
Registre général d’état (Flag)
Registre général d’état (Flag)
Voici la signification des principaux indicateurs
L'indicateur CF (CARRY ou retenue) : il sera mis à 1 s'il y a eu retenue
lors de la dernière instruction arithmétique.
L'indicateur OF (OVERFLOW ou débordement) : il sera mis à 1 (activé,
set) si le résultat d'une addition de 2 nombres positifs donne un nombre
négatif et inversement. En règle générale, cet indicateur est activé quand le
signe change alors qu'il ne devrait pas... En arithmétique non-signé, la
valeur de cet indicateur n'aura donc pas de signification.
L'indicateur ZF (ZERO) : il sera mis à 1 si le résultat d'une instruction
arithmétique a donné zéro et il le restera jusqu'à la prochaine instruction
arithmétique.
L'indicateur SF (SIGN ou sign) : il sera mis à 1 si le résultat d'une
instruction a donné un nombre négatif (bit de poids fort = 1) il sera mis à
zéro dans le cas contraire.
L'indicateur PF (PARITE) : l'indicateur est mis à 1 si le résultat d'une
opération contient un nombre pair de bits 1.
Note : Les indicateurs OF, CF, ZF ,SF et PF sont appelés indicateurs
"arithmétiques" car ils sont tous affectés par des instructions de ce type.
Jean-Luc GOERIG20/36
Fonctionnement d’un processeur
Fonctionnement d’un processeur
Novembre 2007 - #071119
Instructions arithmétiques
Instructions arithmétiques
Une instruction assembleur est également appelé mnémonique.
Instruction MOV:
But : copie le contenu de l'opérande source dans l'opérande de destination.
Syntaxe : MOV destination, source
Flags : aucun flag n'est modifié par cette instruction.
Exemples : Assembleur: Effet:
MOV AX,1234 AX <- 1234
MOV BX,1234H BX <- 1234
16
= 4660
10
MOV DX,CX DX <- CX
MOV BX,AX Echange les contenus
MOV AX,DX de AX et DX mais détruit
MOV DX,BX le contenu de BX.
MOV est l'instruction la plus utilisée en assembleur.