Sintaxe: XCHG dest, src (registrador/registrador, registrador/memória, memória/registrador)
Ação: Troca atomicamente os dois operandos. Nenhuma outra instrução pode interromper a troca — útil para semáforos ou algoritmos lock-free.
Exemplo: XCHG AX, BX troca valores 16-bit em AX e BX.
Caso especial: XCHG AX, reg é 1 byte (opcode 0x90+reg), tornando-o o clássico NOP quando AX,AX.
Sintaxe: XLAT (operandos implícitos)
Requisitos:
AL = índice 8-bit (0–255)DS:BX = endereço base tabela tradução 256-byteAção: AL ← [DS:BX + AL]. Substitui AL pelo byte da tabela naquele offset.
.data uptable db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`' .code MOV BX, OFFSET uptable MOV AL, 'a' ; 61h XLAT ; AL = 'A' (41h)
XLAT é lookup tabela single-instruction, 11-ciclos — útil para conversão charset, nibble-para-hex, ou pequenas máquinas estado.
Tecnologia Eletrônica © [www.351231.com]