* remove "\r" nonsense
[mascara-docs.git] / i386 / i386.reference / DEC.htm
blobe22c55852726f2d8f65f0fa617e759f03bf520dd
1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
2 <HTML>
3 <HEAD>
4 <TITLE>80386 Programmer's Reference Manual -- Opcode DEC</TITLE>
5 </HEAD>
6 <BODY>
7 <B>up:</B> <A HREF="c17.htm">
8 Chapter 17 -- 80386 Instruction Set</A><BR>
9 <B>prev:</B><A HREF="DAS.htm"> DAS Decimal Adjust AL after Subtraction</A><BR>
10 <B>next:</B><A HREF="DIV.htm"> DIV Unsigned Divide</A>
11 <P>
12 <HR>
13 <P>
14 <H1>DEC -- Decrement by 1</H1>
16 <PRE>
17 Opcode Instruction Clocks Description
19 FE /1 DEC r/m8 2/6 Decrement r/m byte by 1
20 FF /1 DEC r/m16 2/6 Decrement r/m word by 1
21 DEC r/m32 2/6 Decrement r/m dword by 1
22 48+rw DEC r16 2 Decrement word register by 1
23 48+rw DEC r32 2 Decrement dword register by 1
24 </PRE>
26 <H2>Operation</H2>
28 <PRE>
29 DEST := DEST - 1;
30 </PRE>
32 <H2>Description</H2>
34 DEC subtracts 1 from the operand. DEC does not change the carry flag.
35 To affect the carry flag, use the
36 <A HREF="SUB.htm">SUB</A> instruction with an immediate
37 operand of 1.
39 <H2>Flags Affected</H2>
41 OF, SF, ZF, AF, and PF as described in <A HREF="appc.htm">Appendix C</A>.
43 <H2>Protected Mode Exceptions</H2>
45 #GP(0) if the result is a nonwritable segment; #GP(0) for an illegal
46 memory operand effective address in the CS, DS, ES, FS, or GS
47 segments; #SS(0) for an illegal address in the SS segment; #PF(fault-code)
48 for a page fault
50 <H2>Real Address Mode Exceptions</H2>
52 Interrupt 13 if any part of the operand would lie outside of the effective
53 address space from 0 to 0FFFFH
55 <H2>Virtual 8086 Mode Exceptions</H2>
57 Same exceptions as in Real Address Mode; #PF(fault-code) for a page
58 fault
61 <P>
62 <HR>
63 <P>
64 <B>up:</B> <A HREF="c17.htm">
65 Chapter 17 -- 80386 Instruction Set</A><BR>
66 <B>prev:</B><A HREF="DAS.htm"> DAS Decimal Adjust AL after Subtraction</A><BR>
67 <B>next:</B><A HREF="DIV.htm"> DIV Unsigned Divide</A>
68 </BODY>