📄 sub.htm
字号:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"><HTML><HEAD><TITLE>80386 Programmer's Reference Manual -- Opcode SUB</TITLE></HEAD><BODY><B>up:</B> <A HREF="c17.htm">Chapter 17 -- 80386 Instruction Set</A><BR><B>prev:</B><A HREF="STR.htm"> STR Store Task Register</A><BR><B>next:</B><A HREF="TEST.htm"> TEST Logical Compare</A><P><HR><P><H1>SUB -- Integer Subtraction</H1><PRE>Opcode Instruction Clocks Description2C ib SUB AL,imm8 2 Subtract immediate byte from AL2D iw SUB AX,imm16 2 Subtract immediate word from AX2D id SUB EAX,imm32 2 Subtract immediate dword from EAX80 /5 ib SUB r/m8,imm8 2/7 Subtract immediate byte from r/m byte81 /5 iw SUB r/m16,imm16 2/7 Subtract immediate word from r/m word81 /5 id SUB r/m32,imm32 2/7 Subtract immediate dword from r/m dword83 /5 ib SUB r/m16,imm8 2/7 Subtract sign-extended immediate byte from r/m word83 /5 ib SUB r/m32,imm8 2/7 Subtract sign-extended immediate byte from r/m dword28 /r SUB r/m8,r8 2/6 Subtract byte register from r/m byte29 /r SUB r/m16,r16 2/6 Subtract word register from r/m word29 /r SUB r/m32,r32 2/6 Subtract dword register from r/m dword2A /r SUB r8,r/m8 2/7 Subtract byte register from r/m byte2B /r SUB r16,r/m16 2/7 Subtract word register from r/m word2B /r SUB r32,r/m32 2/7 Subtract dword register from r/m dword</PRE><H2>Operation</H2><PRE>IF SRC is a byte and DEST is a word or dwordTHEN DEST := DEST - SignExtend(SRC);ELSE DEST := DEST - SRC;FI;</PRE><H2>Description</H2>SUB subtracts the second operand (SRC) from the first operand (DEST). Thefirst operand is assigned the result of the subtraction, and the flags areset accordingly.<P>When an immediate byte value is subtracted from a word operand, theimmediate value is first sign-extended to the size of the destinationoperand.<H2>Flags Affected</H2>OF, SF, ZF, AF, PF, and CF as described in <A HREF="appc.htm">Appendix C</A><H2>Protected Mode Exceptions</H2>#GP(0) if the result is in a nonwritable segment; #GP(0) for an illegalmemory operand effective address in the CS, DS, ES, FS, or GS segments;#SS(0) for an illegal address in the SS segment; #PF(fault-code) for a pagefault<H2>Real Address Mode Exceptions</H2>Interrupt 13 if any part of the operand would lie outside of the effectiveaddress space from 0 to 0FFFFH<H2>Virtual 8086 Mode Exceptions</H2>Same exceptions as in Real Address Mode; #PF(fault-code) for a page fault<P><HR><P><B>up:</B> <A HREF="c17.htm">Chapter 17 -- 80386 Instruction Set</A><BR><B>prev:</B><A HREF="STR.htm"> STR Store Task Register</A><BR><B>next:</B><A HREF="TEST.htm"> TEST Logical Compare</A></BODY>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -