Multiplies the source by the destination and returns the product in the destination. If two register operands are specified, one must be ST. If a memory operand is specified, the product replaces the value in ST. Memory operands can be 32- or 64-bit real numbers or 16- or 32-bit integers.
If no operand is specified, ST(1) is multiplied by ST and the stack is popped; the product is returned in ST. For FMULP, the source must be ST; the product is returned in the destination register and ST is popped.
| fmul shortreal[di+3] |
| fmul longreal |
| |
----------------------------------------------------------------
FIMUL memint | fimul int16 | 486 w=23-27,d=22-24
| fimul warray[di] |
| fimul double |
| |
----------------------------------------------------------------
* The clocks in parentheses show times for short values--those with 40
trailing zeros in their fraction because they were loaded from a
short-real memory operand.
?The clocks in parentheses show typical speeds.
_ If the register operand is a short value--having 40 trailing zeros
in its fraction because it was loaded from a short-real memory
operand--then the timing is (112-126)+EA on the 8087 or 112-126 on
the 80287.
-o-