2024-01-05 21:26:13 +03:00

20 lines
2.4 KiB
Markdown

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