| 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.