Assembleur 80x86 | RFLAGS/EFLAGS/FLAGS |
---|---|
8086+ | Registre de drapeaux |
Description
Le registre FLAGS permet d'indiquer l'état des opérations des instructions ainsi que certains états du microprocesseur. A l'origine, il avait une taille de 16 bits (FLAGS), puis à partir du 80386, il passa à 32 bits (EFLAGS) et finalement avec les microprocesseur 64 bits, il fut proposé en 64 bits (RFLAGS). L'emplacement et la signification des bits ne change pas pour les bits inférieur du registre et ils sont toujours accessibles au même emplacement pour les registres 32 bits et 64 bits.
Structure du registre
Voici la signification des différents bits du registre :
Bit | Nom | Description |
---|---|---|
0 | CF | Ce bit permet d'indiquer le drapeau de retenue |
1 | - | Ce bit vaut 1 |
2 | PF | Ce bit permet d'indiquer le drapeau de parité |
3 | - | Ce bit vaut 0 |
4 | AF | Ce bit permet d'indiquer le drapeau d'ajustement. |
5 | - | Ce bit vaut 0. |
6 | ZF | Ce bit permet d'indiquer le drapeau du zéro. |
7 | SF | Ce bit permet d'indiquer le drapeau de signe. |
8 | TF | Ce bit permet d'indiquer le drapeau de trappe. |
9 | IF | Ce bit permet d'indiquer le drapeau d'interruption. |
10 | DF | Ce bit permet d'indiquer le drapeau de direction. |
11 | OF | Ce bit permet d'indiquer le drapeau de débordement. |
12 à 13 | IOPL | Ces bits permettent d'indiquer le champ de niveau de privilège d'entrée/sortie. |
14 | NT | Ce bit permet d'indiquer le drapeau de tâche chainée. |
15 | - | Ce bit vaut 0. |
16 | RF | Ce bit permet d'indiquer le drapeau de redémarrage. |
17 | VM | Ce bit permet d'indiquer le drapeau de mode virtuel 8086. |
18 | AC | Ce bit permet d'indiquer le drapeau de vérification d'alignement. |
19 | VIF | Ce bit permet d'indiquer le drapeau d'interruption virtuelle. |
20 | VIP | Ce bit permet d'indiquer le drapeau d'interruption virtuelle en attente. |
21 | ID | Ce bit permet d'indiquer le drapeau d'identification. |
22 à 63 | - | Ces bits ne sont pas utilisés. |
Remarques
- Les instructions de déplacement de données comme MOV, MOVSB, MOVSW, PUSH, PUSHF, POP, STOSB, STOSD, STOSW et XCHG, ne modifient pas les bits du registres de drapeaux.
- Bien que la plupart des instructions modifie plusieurs drapeaux à la fois, certaines instructions modifient uniquement qu'un seul bit du registre de drapeaux, comme par exemple : CLC, STC, CLD, STD, CLI, STI,...
- Les instructions de logique binaire (AND, OR, NOT, XOR, TEST,...) modifieront les registres de drapeaux : OF=0, SF, ZF, AF, PF et CF=0.
Dernière mise à jour : Lundi, le 27 novembre 2017