|
|
* |
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z |
? |
| Code | Mnemonic | Description |
| 2C ib | SUB AL, imm8 | Subtract imm8 from AL |
| 2D iw | SUB AX, imm16 | Subtract imm16 from AX |
| 2D id | SUB EAX, imm32 | Subtract imm32 from EAX |
| 80 /5 ib | SUB r/m8, imm8 | Subtract imm8 from r/m8 |
| 81 /5 iw | SUB r/m16, imm16 | Subtract imm16 from r/m16 |
| 81 /5 id | SUB r/m32, imm32 | Subtract imm32 from r/m32 |
| 83 /5 ib | SUB r/m16, imm8 | Subtract sign-extended imm8 from r/m16 |
| 83 /5 ib | SUB r/m32, imm8 | Subtract sign-extended imm8 from r/m32 |
| 28 / r | SUB r/m8, r8 | Subtract r8 from r/m8 |
| 29 / r | SUB r/m16, r16 | Subtract r16 from r/m16 |
| 29 / r | SUB r/m32, r32 | Subtract r32 from r/m32 |
| 2A / r | SUB r8, r/m8 | Subtract r/m8 from r8 |
| 2B / r | SUB r16, r/m16 | Subtract r/m16 from r16 |
| 2B / r | SUB r32, r/m32 | Subtract r/m32 from r32 |
| Operands | Bytes | Clocks | |
| reg, reg | 2 | 1 | UV |
| mem, reg | 2 + d(0, 2) | 3 | UV |
| reg, mem | 2 + d(0, 2) | 2 | UV |
| reg, imm | 2 + i(1, 2) | 1 | UV |
| mem, imm | 2 + d(0, 2) + i(1, 2) | 3 | UV ( not pairable if there is a displacement and immediate) |
| acc, imm | 1 + i(1, 2) | 1 | UV |
| ID | unaffected | DF | unaffected |
| VIP | unaffected | IF | unaffected |
| VIF | unaffected | TF | unaffected |
| AC | unaffected | SF | sets according to the result |
| VM | unaffected | ZF | sets according to the result |
| RF | unaffected | AF | sets according to the result |
| NT | unaffected | PF | sets according to the result |
| IOPL | unaffected | CF | sets according to the result |
| OF | sets according to the result |