Instructions 8086 XCHG et XLAT expliquées : Échange & Recherche table
XCHG – Échange
Syntaxe : XCHG dest, src (registre/registre, registre/mémoire, mémoire/registre)
Action : Échange atomiquement les deux opérandes. Aucune autre instruction ne peut interrompre l'échange — utile pour sémaphores ou algorithmes sans verrou.
Exemple : XCHG AX, BX échange valeurs 16-bit dans AX et BX.
Cas spécial : XCHG AX, reg fait 1 octet (opcode 0x90+reg), en faisant le classique NOP quand AX,AX.
XLAT – Traduction octet via table recherche
Syntaxe : XLAT (opérandes implicites)
Prérequis :
AL= index 8-bit (0–255)DS:BX= adresse base table 256-octets traduction
Action : AL ← [DS:BX + AL]. Remplace AL par octet table à cet offset.
Exemple pratique : Minuscule vers Majuscule
.data uptable db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`' .code MOV BX, OFFSET uptable MOV AL, 'a' ; 61h XLAT ; AL = 'A' (41h)
XLAT est recherche table mono-instruction, 11 cycles — pratique pour conversion jeux caractères, nibble-vers-hex, ou petites machines d'états.
