CMC (instruction x86)

Un article de Wikipédia, l'encyclopédie libre.

CMC est une instruction pour les processeurs de la famille x86.

Sommaire

[modifier] Description

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

[modifier] Drapeaux affectés

Seul le drapeau de retenue CF du registre EFLAGS est affecté. Aucun des autres drapeaux d'EFLAGS n'est altéré.

[modifier] Exceptions générées

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é).

[modifier] Exemple d'utilisation

Les exemples proposés ne sont valables que pour les processeurs x86.

[modifier] Langage assembleur

  • 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:

[modifier] Voir aussi

  • 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'instruction x86