FDIV            Divide real                          Exceptions: I D Z O U P
FDIVP Divide real and pop C3 C2 C1 C0: ? ? * ?

FDIV [[destination,] source]
FDIVP [destination, ST]

Logic ; FDIV source ; FDIV and FDIVP
ST ← ST / source ST(1) ← ST(1) / ST
pop ST

; FDIV dest, source ; FDIVP dest, ST
ST(dest) ← ST(dest) / ST(src) ST(dest) ← ST(dest) / ST
pop ST

FDIV/FDIVP divide the destination operand by the source operand and
leave the quotient in the destination operand.

The one-operand form of FDIV divides ST by a (single or double real)
memory operand and leaves the result in ST.
The two-operand form of FDIV divides two register operands (one of
these must be ST) and stores the result in the destination register.
FDIVP works like the two-operand FDIV but requires ST to be the
source operand; it also pops the stack.
The no-operand forms FDIV and FDIVP equal 'FDIVP ST(1), ST'.


Opcode Format
D8 /6 FDIV m32
DC /6 FDIV m64
D8 F0 + i FDIV ST,ST(i)
DC F8 + i FDIV ST(i),ST
DE F8 + i FDIVP ST(i),ST
DE F9 FDIV
DE F9 FDIVP


Timing
Variations/
operand 8087 287 387 486 Pentium
fdiv reg 193-203 193-203 88-91 73 39 FX
fdiv m32 (215-225)+EA 215-225 89 73 39 FX
fdiv m64 (220-230)+EA 220-230 94 73 39 FX
fdivp 197-207 197-207 91 73 39 FX