XCHG
MEM0:rw:v REG0=GPRv_R():rw MEM0:rw:v REG0=GPRv_R():rw
x86_64 X86_LEGACY DATAXFER I86 source: xed
XED_XCHG_X86_LEGACY_ONEBYTE_87_256512
Encoding
| encoding_kind | X86_LEGACY |
| opcode_bytes | 87 87 |
| opcode_map | ONEBYTE |
| mandatory_prefix | - |
| has_modrm | True |
| attributes | LOCKED HLE_ACQ_ABLE HLE_REL_ABLE |
| cpl | 3 |
| raw_encoding | 0x87 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() lock_prefix 0x87 MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() nolock_prefix |
Operands (4)
| # | Role | Kind | Class / Reg | Width | Access | Visibility | Encoded in |
|---|---|---|---|---|---|---|---|
| 0 | MEM0 | MEM | v | RW | EXPLICIT | MODRM_RM | |
| 1 | REG0 | REG | RW | EXPLICIT | MODRM_REG | ||
| 2 | MEM1 | MEM | v | RW | EXPLICIT | MODRM_RM | |
| 3 | REG1 | REG | RW | EXPLICIT | MODRM_REG |
Micro-ops sequence (0)
No micro-ops authored for this encoding. Emulator semantics not yet defined — decoder still works.