CMC (instruction x86)
CMC est une instruction pour les processeurs de la famille x86.
Description[modifier | modifier le code]
L'instruction CMC est un mnémonique pour Complement Carry Flag (complémente le drapeau de retenue). Cette instruction inverse (effectue un complément à un) le drapeau de retenue CF (bit 0 du registre EFLAGS). Ainsi, si le drapeau est à 1, l'instruction CMC le fait passer à 0, et vice-versa.
L'instruction CMC est une instruction de base des processeurs x86. Elle fut implémentée sur le premier processeur de cette famille, le 8086.
Opcode | Instruction | Description |
---|---|---|
F5 | CMC | Complémente le drapeau de retenue |
Drapeaux affectés[modifier | modifier le code]
Seul le drapeau de retenue CF du registre EFLAGS est affecté. Aucun des autres drapeaux d'EFLAGS n'est altéré.
Exceptions générées[modifier | modifier le code]
Cette instruction ne génère aucune exception dans aucun des trois modes de fonctionnement du processeur x86 (Mode réel, Mode virtuel 8086, Mode protégé).
Exemple d'utilisation[modifier | modifier le code]
Les exemples proposés ne sont valables que pour les processeurs x86.
Langage assembleur[modifier | modifier le code]
- MASM (Syntaxe Intel)
mov al, 0FFh add al, 1 ; le CF est armé après cette addition CMC ; inverse le drapeau de retenue et donc désarme le CF jc @retenue ; le saut conditionnel n'est pas pris ! nop ; cette instruction sera bien exécutée @retenue:
Voir aussi[modifier | modifier le code]
Articles connexes[modifier | modifier le code]
- STC - L'instruction qui arme le drapeau de retenue.
- CLC - L'instruction qui désarme le drapeau de retenue.
- EFLAGS - notamment la partie sur le drapeau de retenue CF.
- Jeu d'instructions x86