Section courante

A propos

Section administrative du site

Assembleur 80x86

XCHG

INTEL 8088+ Exchange

Syntaxe

XCHG opérandecible1,opérandecible2

Description

Cette instruction permet d'échanger la valeur de deux opérandes.

Algorithme

tempopérandecible1
opérandecible1opérandecible2
opérandecible2temp

Mnémonique

Instruction Opcode Description
XCHG AX, reg16 90h +rw Échange le contenu du registre AX avec le contenu d'un registre 16 bits.
XCHG reg16, AX 90h +rw Échange le contenu du registre 16 bits avec le contenu du registre AX.
XCHG EAX, reg32 90h +rd Échange le contenu du registre EAX avec le contenu d'un registre 32 bits.
XCHG reg32, EAX 90h +rd Échange le contenu du registre 32 bits avec le contenu du registre EAX.
XCHG RAX, reg64 90h +rq Échange le contenu du registre RAX avec le contenu d'un registre 64 bits.
XCHG reg/mem8, reg8 86h /r Échange le contenu d'une opérande registre ou mémoire 8 bits avec le contenu d'un registre 8 bits.
XCHG reg8, reg/mem8 86h /r Échange le contenu d'un registre 8 bits avec le contenu d'une opérande registre ou mémoire 8 bits.
XCHG reg/mem16, reg16 87h /r Échange le contenu d'une opérande registre ou mémoire 16 bits avec le contenu d'un registre 16 bits.
XCHG reg16, reg/mem16 87h /r Échange le contenu d'un registre 16 bits avec le contenu d'une opérande registre ou mémoire 16 bits.
XCHG reg/mem32, reg32 87h /r Échange le contenu d'une opérande registre ou mémoire 32 bits avec le contenu d'un registre 32 bits.
XCHG reg32, reg/mem32 87h /r Échange le contenu d'un registre 32 bits avec le contenu d'une opérande registre ou mémoire 32 bits.
XCHG reg/mem64, reg64 87h /r Échange le contenu d'une opérande registre ou mémoire 64 bits avec le contenu d'un registre 64 bits.
XCHG reg64, reg/mem64 87h /r Échange le contenu d'un registre 64 bits avec le contenu d'une opérande registre ou mémoire 64 bits.

Exceptions

Message Mode réel Virtuel 8086 Mode protégé Description
#SS(Pile) X X X Une adresse mémoire dépasse la limite du segment de pile ou n'est pas canonique
#GP(Protection général) X X X Une adresse mémoire dépasse la limite du segment de données ou n'est pas canonique
    X L'opérande de destination n'est pas dans un segment non écrivable
    X Un segment de données nulle est utilisé comme référence mémoire
#PF(Faute de page)   X X Une faute de page résultat de l'exécution de l'instruction
#AC(Vérifie l'alignement)   X X Un désalignement de la référence mémoire est effectué quand une vérification d'alignement est activé

Voir également

Instruction assembleur 80x86 - Instruction BSWAP
Instruction assembleur 80x86 - Instruction XADD

Références

Le livre d'Or PC, Martin Althaus, 1992, ISBN: 2-7361-0934-1, page 839
Assembleur Facile, Philippe Mercier, 1990, ISBN: 2-501-01176-7, page 418
AMD64 Architecture Programmer's Manual Volume 3: General-Purpose and System Instructions, Edition Advanced Micro Devices, Revision 3.14, September 2007, Publication No. 24594, page 245.
Intel® 64 and IA-32 Architectures Software Developer’s Manual Volume 2B: Instruction Set Reference, N-Z, Edition Intel, Mars 2010, Publication No. 253667-034US, page 538 à 541.

Dernière mise à jour : Samedi, le 2 août 2014