CMC (instruction x86)

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

Description modifier

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

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

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

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

Langage assembleur modifier

  • 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

Articles connexes modifier

  • 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