Intel 64 and IA-32 Architectures Software Developers Manual Volume 2A, Instruction Set Reference, A-M

3-30 Vol. 2
INSTRUCTION SET REFERENCE, A-M
ADD—Add
Opcode Instruction
64-Bit
Mode
Compat/
Leg Mode Description
04 ib ADD AL, imm8 Valid Valid Add imm8 to AL.
05 iw ADD AX, imm16 Valid Valid Add imm16 to AX.
05 id ADD EAX, imm32 Valid Valid Add imm32 to EAX.
REX.W + 05 id ADD RAX, imm32 Valid N.E. Add imm32 sign-
extended to 64-bits
to RAX.
80 /0 ib ADD r/m8, imm8 Valid Valid Add imm8 to r/m8.
REX + 80 /0 ib ADD r/m8
*
, imm8 Valid N.E. Add sign-extended
imm8 to r/m64.
81 /0 iw ADD r/m16,
imm16
Valid Valid Add imm16 to
r/m16.
81 /0 id ADD r/m32,
imm32
Valid Valid Add imm32 to
r/m32.
REX.W + 81 /0 id ADD r/m64,
imm32
Valid N.E. Add imm32 sign-
extended to 64-bits
to r/m64.
83 /0 ib ADD r/m16, imm8 Valid Valid Add sign-extended
imm8 to r/m16.
83 /0 ib ADD r/m32, imm8 Valid Valid Add sign-extended
imm8 to r/m32.
REX.W + 83 /0 ib ADD r/m64, imm8 Valid N.E. Add sign-extended
imm8 to r/m64.
00 /r ADD r/m8, r8 Valid Valid Add r8 to r/m8.
REX + 00 /r ADD r/m8
*
, r8
*
Valid N.E. Add r8 to r/m8.
01 /r ADD r/m16, r16 Valid Valid Add r16 to r/m16.
01 /r ADD r/m32, r32 Valid Valid Add r32 to r/m32.
REX.W + 01 /r ADD r/m64, r64 Valid N.E. Add r64 to r/m64.
02 /r ADD r8, r/m8 Valid Valid Add r/m8 to r8.
REX + 02 /r ADD r8
*
, r/m8
*
Valid N.E. Add r/m8 to r8.
03 /r ADD r16, r/m16 Valid Valid Add r/m16 to r16.
03 /r ADD r32, r/m32 Valid Valid Add r/m32 to r32.
REX.W + 03 /r ADD r64, r/m64 Valid N.E. Add r/m64 to r64.
NOTES:
* In 64-bit mode, r/m8 can not be encoded to access the following byte registers if a REX prefix
is used: AH, BH, CH, DH.