>> Tecnologia Eletrônica >  >> Rádio via Satélite >> XM

Instruções 8086 XCHG e XLAT Explicadas: Troca e Busca Tabela

XCHG – Exchange (Troca)

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.

XLAT – Traduz Byte Via Tabela Lookup

Sintaxe: XLAT (operandos implícitos)

Requisitos:

  • AL = índice 8-bit (0–255)
  • DS:BX = endereço base tabela tradução 256-byte

Ação: AL ← [DS:BX + AL]. Substitui AL pelo byte da tabela naquele offset.

Exemplo Prático: Minúscula para Maiúscula

.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.