1 <!DOCTYPE HTML PUBLIC
"-//IETF//DTD HTML 2.0//EN">
4 <TITLE>80386 Programmer's Reference Manual -- Opcode SUB
</TITLE>
7 <B>up:
</B> <A HREF=
"c17.htm">
8 Chapter
17 --
80386 Instruction Set
</A><BR>
9 <B>prev:
</B><A HREF=
"STR.htm"> STR Store Task Register
</A><BR>
10 <B>next:
</B><A HREF=
"TEST.htm"> TEST Logical Compare
</A>
14 <H1>SUB -- Integer Subtraction
</H1>
17 Opcode Instruction Clocks Description
19 2C ib SUB AL,imm8
2 Subtract immediate byte from AL
20 2D iw SUB AX,imm16
2 Subtract immediate word from AX
21 2D id SUB EAX,imm32
2 Subtract immediate dword from EAX
22 80 /
5 ib SUB r/m8,imm8
2/
7 Subtract immediate byte from r/m byte
23 81 /
5 iw SUB r/m16,imm16
2/
7 Subtract immediate word from r/m word
24 81 /
5 id SUB r/m32,imm32
2/
7 Subtract immediate dword from r/m
26 83 /
5 ib SUB r/m16,imm8
2/
7 Subtract sign-extended immediate byte
28 83 /
5 ib SUB r/m32,imm8
2/
7 Subtract sign-extended immediate byte
30 28 /r SUB r/m8,r8
2/
6 Subtract byte register from r/m byte
31 29 /r SUB r/m16,r16
2/
6 Subtract word register from r/m word
32 29 /r SUB r/m32,r32
2/
6 Subtract dword register from r/m
34 2A /r SUB r8,r/m8
2/
7 Subtract byte register from r/m byte
35 2B /r SUB r16,r/m16
2/
7 Subtract word register from r/m word
36 2B /r SUB r32,r/m32
2/
7 Subtract dword register from r/m
44 IF SRC is a byte and DEST is a word or dword
45 THEN DEST := DEST - SignExtend(SRC);
46 ELSE DEST := DEST - SRC;
52 SUB subtracts the second operand (SRC) from the first operand (DEST). The
53 first operand is assigned the result of the subtraction, and the flags are
56 When an immediate byte value is subtracted from a word operand, the
57 immediate value is first sign-extended to the size of the destination
60 <H2>Flags Affected
</H2>
62 OF, SF, ZF, AF, PF, and CF as described in
<A HREF=
"appc.htm">Appendix C
</A>
64 <H2>Protected Mode Exceptions
</H2>
66 #GP(
0) if the result is in a nonwritable segment; #GP(
0) for an illegal
67 memory operand effective address in the CS, DS, ES, FS, or GS segments;
68 #SS(
0) for an illegal address in the SS segment; #PF(fault-code) for a page
71 <H2>Real Address Mode Exceptions
</H2>
73 Interrupt
13 if any part of the operand would lie outside of the effective
74 address space from
0 to
0FFFFH
76 <H2>Virtual
8086 Mode Exceptions
</H2>
78 Same exceptions as in Real Address Mode; #PF(fault-code) for a page fault
84 <B>up:
</B> <A HREF=
"c17.htm">
85 Chapter
17 --
80386 Instruction Set
</A><BR>
86 <B>prev:
</B><A HREF=
"STR.htm"> STR Store Task Register
</A><BR>
87 <B>next:
</B><A HREF=
"TEST.htm"> TEST Logical Compare
</A>