Motorola DSP96002 User Manual page 703

32-bit digital signal processor
Table of Contents

Advertisement

;
; Input:
r0 contains the lowest address of the 4-word internal
;
;
; Output:
r0 contains the lowest address of a 4-word internal
;
;
; Alters:
D0.l
;
dp_abs
clr
move
rts
page
;
; MOTOROLA DSP96002 DPLIB - VERSION 1.0
;
; DP_ADD - Add two double precision numbers.
;
; Entry point:
;
; Input:
r0 contains the lowest address of a 4-word internal
;
;
; Output:
r0 contains the lowest address of a 4-word internal
;
;
; Alters:
D0.L,D1.L,D2.L,D3.L,D4.L,D5.L,D6.L,D7.L,D0.H,D1.H
;
dp_add
move
move
move
move
move
move
move
cmp
jeq
jpl
;
; X has a larger exponent than c(r0)
;
xbig
sub
cmp
jmi
cmp
jge
sub
clr
lsr
jmp
;
; A has a larger exponent than X
;
B-184
extended precision number
extended precision number
d0.l
d0.l,x:(r0+sign)
dp_add:
c(r0)
extended precision number
extended precision number
x:(r0+ms),d0.l
x:(r0+ls),d1.l
x:(r1+ms),d2.l
x:(r1+ls),d3.l
x:(r0),d4.l
x:(r1),d5.l
d4.l,d6.l
d5,d4
#63,d7.l
addmant
abig
d4,d5
d5.l,d4.l ;c(r1) exponent is greater
d5,d7
#31,d7.l
aequalx
d5,d7
#32,d7.l
dshifta
d7,d5
d0.l,d1.l ;yes, shift ms to ls
d0.l
d5.l,d0.h ;# of shifts to be performed
d0.h,d1
addmant
DSP96002 USER'S MANUAL
;clear the sign word
c(r0) + c(r1)
;get c(r0)_ms
;get c(r0)_ls
;get c(r1)_ms
;get c(r1)_ls
;get c(r0) exponent
;get c(r1) exponent
;copy of c(r0) exponent
;compare exponents
;exponents are equal
;c(r0) exponent is greater
;is |r0(exp)-r1(exp)| > 63?
;yes, then c(r0) + c(r1) = c(r1)
;is |r0(exp)-r1(exp)| > 31?
;no, shift both c(r0) words
;align the c(r0) mantissa
;add the mantissas
MOTOROLA

Advertisement

Table of Contents
loading

Table of Contents