xor

8086 and later

Logical Exclusive OR

xor r/m8, reg8 | xor r/m16, reg16 | xor r/m32, reg32 | xor r/m64, reg64 | xor reg8, r/m8 | xor reg16, r/m16 | xor reg32, r/m32 | xor reg64, r/m64 | xor r/m16, imm8 | xor r/m32, imm8 | xor r/m64, imm8 | xor al, imm8 | xor ax, imm16 | xor eax, imm32 | xor rax, imm32 | xor r/m8, imm8 | xor r/m16, imm16 | xor r/m32, imm32 | xor r/m64, imm32 | xor [reg8], reg8, r/m8 | xor [reg16], reg16, r/m16 | xor [reg32], reg32, r/m32 | xor [reg64], reg64, r/m64 | xor [reg8], r/m8, reg8 | xor [reg16], r/m16, reg16 | xor [reg32], r/m32, reg32 | xor [reg64], r/m64, reg64 | xor [reg16], r/m16, imm8 | xor [reg32], r/m32, imm8 | xor [reg64], r/m64, imm8 | xor [reg8], r/m8, imm8 | xor [reg16], r/m16, imm16 | xor [reg32], r/m32, imm32 | xor [reg64], r/m64, imm32 | xor kreg8, kreg8, kreg8 | xor kreg16, kreg16, kreg16 | xor kreg32, kreg32, kreg32 | xor kreg64, kreg64, kreg64

XOR performs a bitwise XOR operation between its two operands (i.e. each bit of the result is 1 if and only if exactly one of the corresponding bits of the two inputs was 1), and stores the result in the destination (first) operand.

In the forms with an 8-bit immediate second operand and a longer first operand, the second operand is considered to be signed, and is sign-extended to the length of the first operand. In these cases, the BYTE qualifier is necessary to force NASM to generate this form of the instruction.

The MMX instruction PXOR (see PXOR) performs the same operation on the 64-bit MMX registers.

Loading...

Forms

Every form of xor the assembler accepts, from NASM's own instruction table. The second column is the processor that introduced the form; a badge marks a form that needs an extension, that is lockable, or that long mode dropped.

FormSinceNotes
xor r/m8, reg88086lock
xor r/m16, reg168086lock
xor r/m32, reg32386lock
xor r/m64, reg64x86-64locklong
xor reg8, r/m88086
xor reg16, r/m168086
xor reg32, r/m32386
xor reg64, r/m64x86-64long
xor r/m16, imm88086lock
xor r/m32, imm8386lock
xor r/m64, imm8x86-64locklong
xor al, imm88086
xor ax, imm168086
xor eax, imm32386
xor rax, imm32x86-64long
xor r/m8, imm88086lock
xor r/m16, imm168086lock
xor r/m32, imm32386lock
xor r/m64, imm32x86-64locklong
xor [reg8], reg8, r/m8x86-64apxlong
xor [reg16], reg16, r/m16x86-64apxlong
xor [reg32], reg32, r/m32x86-64apxlong
xor [reg64], reg64, r/m64x86-64apxlong
xor [reg8], r/m8, reg8x86-64apxlong
xor [reg16], r/m16, reg16x86-64apxlong
xor [reg32], r/m32, reg32x86-64apxlong
xor [reg64], r/m64, reg64x86-64apxlong
xor [reg16], r/m16, imm8x86-64apxlong
xor [reg32], r/m32, imm8x86-64apxlong
xor [reg64], r/m64, imm8x86-64apxlong
xor [reg8], r/m8, imm8x86-64apxlong
xor [reg16], r/m16, imm16x86-64apxlong
xor [reg32], r/m32, imm32x86-64apxlong
xor [reg64], r/m64, imm32x86-64apxlong
xor kreg8, kreg8, kreg8recentavx512dq
xor kreg16, kreg16, kreg16recentavx512f
xor kreg32, kreg32, kreg32recentavx512bw
xor kreg64, kreg64, kreg64recentavx512bw