FSUB
Usage: FSUB dest.src Modifies flags: See below.
Subtracts the 'src' from the 'dest' and stores the difference in the 'dest' location. 'Src' operands in memory can be in single-precision or double-precision floating-point format or in word or doubleword integer format.
Floating-Point Subtract
FSUB mem32 ; D8 /4 [8086,FPU]
FSUB mem64 ; DC /4 [8086,FPU]
FSUB fpureg ; D8 E0+r [8086,FPU]
FSUB ST0,fpureg ; D8 E0+r [8086,FPU]
FSUB fpureg ; DC E8+r [8086,FPU]
FSUB fpureg,ST0 ; DC E8+r [8086,FPU]
FSUBR mem32 ; D8 /5 [8086,FPU]
FSUBR mem64 ; DC /5 [8086,FPU]
FSUBR fpureg ; D8 E8+r [8086,FPU]
FSUBR ST0,fpureg ; D8 E8+r [8086,FPU]
FSUBR fpureg ; DC E0+r [8086,FPU]
FSUBR fpureg,ST0 ; DC E0+r [8086,FPU]
FSUBP fpureg ; DE E8+r [8086,FPU]
FSUBP fpureg,ST0 ; DE E8+r [8086,FPU]
FSUBRP fpureg ; DE E0+r [8086,FPU]
FSUBRP fpureg,ST0 ; DE E0+r [8086,FPU]
FSUB subtracts the given operand from ST0 and stores the result back in ST0.
FSUBR does the same thing, but does the subtraction the other way up: so, it subtracts ST0 from the given operand and stores the result in ST0,.
FSUBP operates like FSUB, but pops the register stack once it has finished.
FSUBRP operates like FSUBR, but pops the register stack once it has finished.
FPU Flags Affected C1 Set to 0 if stack underflow occurred. Set if result was rounded up; cleared otherwise. C0, C2, C3 Undefined.
The 'dest' operand is always an FPU data register; the 'src' operand can be a register or a memory location.
EXAMPLE:
fsub Label st3