Instruction
XCHG
Swaps two operands; with a memory operand it is atomic even without a LOCK prefix.
- Extensions
- Forms
- 5 (5 Legacy)
- Data
- Intel XED v2026.08.23
Forms
| Instruction | Encoding | Requires |
|---|---|---|
XCHG m8, r8
XCHG_MEMb_GPR8 | 86 /r | Base instruction set |
XCHG r8, r8
XCHG_GPR8_GPR8 | 86 /r | Base instruction set |
XCHG m16/32/64, r16/32/64
XCHG_MEMv_GPRv | 87 /r | Base instruction set |
XCHG r16/32/64, r16/32/64
XCHG_GPRv_GPRv | 87 /r | Base instruction set |
XCHG r16/32/64, rAX
XCHG_GPRv_OrAX | 90+r | Base instruction set |
CPUID and processors
Each form belongs to an XED ISA set. A form can be used when the processor reports every CPUID bit of one of its ISA set's alternatives.
| ISA set | CPUID | Processors in XED |
|---|---|---|
I86 | No CPUID bit: part of the base instruction set. | Every x86-64 processor in XED’s model |
More General-purpose instructions
Sources
- Intel XED v2026.08.23 (commit
0bcb6237345c): forms, encodings, ISA sets, CPUID bits and chip model. - Intel 64 and IA-32 Architectures Software Developer's Manual, Volume 2 (325383-092, June 2026)
- Intel 64 and IA-32 Architectures Software Developer's Manual, Volume 2 (325383-093, September 2026)
The tables are derived from Intel XED, Copyright Intel Corporation, licensed under the Apache License 2.0; x86-64.net converted and reformatted them. The text is our own.