and

8086 and later

Logical AND

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

AND performs a bitwise AND operation between its two operands (i.e. each bit of the result is 1 if and only if the corresponding bits of the two inputs were both 1), and stores the result in the destination (first) operand. The destination operand can be a register or a memory location. The source operand can be a register, a memory location or an immediate value.

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 PAND (see PAND) performs the same operation on the 64-bit MMX registers.

Loading...

Forms

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