Appendix A: System Routines — Direct Floating Point Operations
377
TI
-
89 / TI
-
92 Plus Developer Guide
Not for Distribution
Beta Version January 26, 2001
bcddiv
Declaration:
BCD16
bcddiv
(BCD16
a
, BCD16
b
)
Category(ies):
Direct Floating Point Operations
Description:
Calculate the quotient of two TI binary-code decimal floating-point
numbers. This routine performs the same function as the C “/” operator on
BCD16 values. This routine is provided as a convenience for assembly
language programs.
Inputs:
a
,
b
— Two BCD16 numbers to divide.
Outputs:
Returns
a
/
b
as a BCD16 number.
Assumptions:
None
Side Effects:
None
Availability:
All versions of the TI
-
89 / TI
-
92 Plus.
TI
-
89 / TI
-
92 Plus
Differences:
None
See Also: bcdadd, bcdbcd, bcdcmp, bcdlong, bcdmul, bcdneg, bcdsub
Example:
bcdresult = -10
a = -20
b = -30
quot = -40
.
.
.
move.l b(a6),-(sp) ;push b (a 10-byte BCD16 value)
move.l b+4(a6),-(sp)
move.w b+8(a6),-(sp)
move.l a(a6),-(sp) ;push a
move.l a+4(a6),-(sp)
move.w a+8(a6),-(sp)
move.l bcddiv(a2),a0 ;assumes a2 -> jump table
jsr (a0) ;call bcddiv(a, b)
lea 20(sp),sp ;pop parameters
; BCD16 routine value is always at –10(a6)
move.l bcdresult(a6),quot(a6)
move.l bcdresult+4(a6),quot+4(a6)
move.w bcdresult+8(a6),quot+8(a6)