|57h||MT$FDIV||floating point division|
|Input||Floating-point dividend in accumulator, divisor in operand.|
|Output||Accumulator contains accumulator / operand.|
Performs a floating-point divide on the BCD registers.
The mantissas are divided by repeated subtraction of the operator mantissa from the accumulator mantissa, with the result being built up in a seven-byte temporary mantissa located at MTT_WBUF+8. Once the process is complete, the contents of the register are copied to MTT_AMAN and rounded to 12 digits as with multiplication above.
To divide the result of -22493.8033997 obtained in the multiplication
example above by 0.00654, first set up the divisor as a constant:
FP_DIVISOR: DB 0,0,0,0,40h,65h ;mantissa DB -3 ;exponent DB 0 ;signthen execute the following code:
LDD #MTT_OMAN+1 ;target is operand LDX #SZBCD ;length of one f.p. number STX UTW_S0: LDX #FP_DIVISOR OS UT$CPYB ;copy divisor into operand OS MT$FDIV ;and do divisionThe accumulator will now contain the result -3439419.48008 and will look like this:
MTT_AMAN: 00 MTT_AMAN+1: 08 MTT_AMAN+2: 80 MTT_AMAN+3: 94 MTT_AMAN+4: 41 MTT_AMAN+5: 39 MTT_AMAN+6: 34 MTB_AEXP: 06 MTB_ASGN: 80
|Errors||253 - exponent overflow|