| Opcode | Instruction | Op/En | 64-bit Mode | Compat/Leg Mode | Description | | ---------------- | ---------------- | ----- | ----------- | --------------- | -------------------------------------------- | | 04 ib | ADD AL, imm8 | I | Valid | Valid | Add imm8 to AL. | | 05 iw | ADD AX, imm16 | I | Valid | Valid | Add imm16 to AX. | | 05 id | ADD EAX, imm32 | I | Valid | Valid | Add imm32 to EAX. | | REX.W + 05 id | ADD RAX, imm32 | I | Valid | N.E. | Add imm32 sign-extended to 64-bits to RAX. | | 80 /0 ib | ADD r/m8, imm8 | MI | Valid | Valid | Add imm8 to r/m8. | | REX + 80 /0 ib | ADD r/m8\*, imm8 | MI | Valid | N.E. | Add sign-extended imm8 to r/m8. | | 81 /0 iw | ADD r/m16, imm16 | MI | Valid | Valid | Add imm16 to r/m16. | | 81 /0 id | ADD r/m32, imm32 | MI | Valid | Valid | Add imm32 to r/m32. | | REX.W + 81 /0 id | ADD r/m64, imm32 | MI | Valid | N.E. | Add imm32 sign-extended to 64-bits to r/m64. | | 83 /0 ib | ADD r/m16, imm8 | MI | Valid | Valid | Add sign-extended imm8 to r/m16. | | 83 /0 ib | ADD r/m32, imm8 | MI | Valid | Valid | Add sign-extended imm8 to r/m32. | | REX.W + 83 /0 ib | ADD r/m64, imm8 | MI | Valid | N.E. | Add sign-extended imm8 to r/m64. | | 00 /r | ADD r/m8, r8 | MR | Valid | Valid | Add r8 to r/m8. | | REX + 00 /r | ADD r/m8\*, r8\* | MR | Valid | N.E. | Add r8 to r/m8. | | 01 /r | ADD r/m16, r16 | MR | Valid | Valid | Add r16 to r/m16. | | 01 /r | ADD r/m32, r32 | MR | Valid | Valid | Add r32 to r/m32. | | REX.W + 01 /r | ADD r/m64, r64 | MR | Valid | N.E. | Add r64 to r/m64. | | 02 /r | ADD r8, r/m8 | RM | Valid | Valid | Add r/m8 to r8. | | REX + 02 /r | ADD r8\*, r/m8\* | RM | Valid | N.E. | Add r/m8 to r8. | | 03 /r | ADD r16, r/m16 | RM | Valid | Valid | Add r/m16 to r16. | | 03 /r | ADD r32, r/m32 | RM | Valid | Valid | Add r/m32 to r32. | | REX.W + 03 /r | ADD r64, r/m64 | RM | Valid | N.E. | Add r/m64 to r64. | > \*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.