x86 Instruction Set Reference
XOR
Logical Exclusive OR
| Opcode | Mnemonic | Description | 
|---|---|---|
34 ib | 
XOR AL,imm8 | 
AL XOR imm8. | 
35 iw | 
XOR AX,imm16 | 
AX XOR imm16. | 
35 id | 
XOR EAX,imm32 | 
EAX XOR imm32. | 
80 /6 ib | 
XOR r/m8,imm8 r/m8 | 
XOR imm8. | 
81 /6 iw | 
XOR r/m16,imm16 | 
r/m16 XOR imm16. | 
81 /6 id | 
XOR r/m32,imm32 | 
r/m32 XOR imm32. | 
83 /6 ib | 
XOR r/m16,imm8 | 
r/m16 XOR imm8 (sign-extended). | 
83 /6 ib | 
XOR r/m32,imm8 | 
r/m32 XOR imm8 (sign-extended). | 
30 /r | 
XOR r/m8,r8 | 
r/m8 XOR r8. | 
31 /r | 
XOR r/m16,r16 | 
r/m16 XOR r16. | 
31 /r | 
XOR r/m32,r32 | 
r/m32 XOR r32. | 
32 /r | 
XOR r8,r/m8 | 
r8 XOR r/m8. | 
33 /r | 
XOR r16,r/m16 | 
r16 XOR r/m16. | 
33 /r | 
XOR r32,r/m32 | 
r32 XOR r/m32. | 
| Description | 
|---|
| 
 Performs a bitwise exclusive OR (XOR) operation on the destination (first) and source (second) operands and stores the result in the destination operand location. The source operand can be an immediate, a register, or a memory location; the destination operand can be a register or a memory location. (However, two memory operands cannot be used in one instruction.) Each bit of the result is 1 if the corresponding bits of the operands are different; each bit is 0 if the corresponding bits are the same. This instruction can be used with a LOCK prefix to allow the instruction to be executed atomically.  | 
| Operation | 
|---|
Destination = Destination ^ Source;  | 
| Flags affected | 
|---|
| 
 The OF and CF flags are cleared; the SF, ZF, and PF flags are set according to the result. The state of the AF flag is undefined.  | 
| Instruction | Latency | Throughput | Execution Unit | 
|---|---|---|---|
CPUID | 0F3n/0F2n | 0F3n/0F2n | 0F2n | 
XOR | 1/0.5 | 0.5/0.5 | ALU |