| Opcode        | Instruction       | Op/En | 64-Bit Mode | Compat/Leg Mode | Description                                      |
| ------------- | ----------------- | ----- | ----------- | --------------- | ------------------------------------------------ |
| 90+rw         | XCHG AX, r16      | O     | Valid       | Valid           | Exchange r16 with AX.                            |
| 90+rw         | XCHG r16, AX      | O     | Valid       | Valid           | Exchange AX with r16.                            |
| 90+rd         | XCHG EAX, r32     | O     | Valid       | Valid           | Exchange r32 with EAX.                           |
| REX.W + 90+rd | XCHG RAX, r64     | O     | Valid       | N.E.            | Exchange r64 with RAX.                           |
| 90+rd         | XCHG r32, EAX     | O     | Valid       | Valid           | Exchange EAX with r32.                           |
| REX.W + 90+rd | XCHG r64, RAX     | O     | Valid       | N.E.            | Exchange RAX with r64.                           |
| 86 /r         | XCHG r/m8, r8     | MR    | Valid       | Valid           | Exchange r8 (byte register) with byte from r/m8. |
| REX + 86 /r   | XCHG r/m8\*, r8\* | MR    | Valid       | N.E.            | Exchange r8 (byte register) with byte from r/m8. |
| 86 /r         | XCHG r8, r/m8     | RM    | Valid       | Valid           | Exchange byte from r/m8 with r8 (byte register). |
| REX + 86 /r   | XCHG r8\*, r/m8\* | RM    | Valid       | N.E.            | Exchange byte from r/m8 with r8 (byte register). |
| 87 /r         | XCHG r/m16, r16   | MR    | Valid       | Valid           | Exchange r16 with word from r/m16.               |
| 87 /r         | XCHG r16, r/m16   | RM    | Valid       | Valid           | Exchange word from r/m16 with r16.               |
| 87 /r         | XCHG r/m32, r32   | MR    | Valid       | Valid           | Exchange r32 with doubleword from r/m32.         |
| REX.W + 87 /r | XCHG r/m64, r64   | MR    | Valid       | N.E.            | Exchange r64 with quadword from r/m64.           |
| 87 /r         | XCHG r32, r/m32   | RM    | Valid       | Valid           | Exchange doubleword from r/m32 with r32.         |
| REX.W + 87 /r | XCHG r64, r/m64   | RM    | Valid       | N.E.            | Exchange quadword from r/m64 with r64.           |

> * In 64-bit mode, r/m8 cannot been coded to access the following byte registers if a REX prefix is used: AH, BH, CH, DH.