CMC (instruction x86)

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

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