Motorola DSP96002 User Manual
Page 648
MOTOROLA
DSP96002 USER’S MANUAL
B-129
;amatrix dc A(1,1),A(1,2),...,A(1,N),A(2,1),A(2,2),...,A(2,N), ...
;
;Matrix A is in X memory, while matrices B and C are in Y memory.
;Since modulo N**2 addressing is used for all matrices, the first
;k least significant bits of the address of the beginning of any
;matrix storage area must be equal to zero, where 2**k >= N**2.
;
;This routine takes
; 15 + 4*18 = 87 instruction cycles to complete.
;
;
;
Program ICycles
Words
page 132,60,1,1
N equ 4
N_sqr equ N*N
org x:$0
amatrix dc .1,.2,.3,.4
dc .5,.6,.7,.8
dc .9,.1,.2,.3
dc .4,.5,.6,.7
org y:$0
bmatrix dc .5,1.0,.5,.5
dc .5,1.0,.5,.5
dc .5,1.0,.5,.5
dc .5,1.0,.5,.5
org y:$20
cmatrix ds N_sqr
org p:$100
move #amatrix,r0 1 1
move #N,n4 1 1
move #N_sqr-1,m0 ; modulo-N addressing 1 1
move #bmatrix,r4 1 1
move #cmatrix+N_sqr-1,r5 1 1
move m0,m4 1 1
move n4,n5 1 1
move m0,m5 1 1
fclr d1 x:(r0)+,d4.s 1 1
fclr d5 y:(r4)+n4,d8.s 1 1
do #4,endall 2 3
fmpy.s d4,d8,d3 x:(r0)+,d4.s y:(r4)+n4,d0.s 1 1
fmpy d4,d0,d3 fadd.s d3,d1 x:(r0)+,d4.s y:(r4)+n4,d6.s 1 1
fmpy d4,d6,d3 fadd.s d3,d1 x:(r0)+,d4.s y:(r4)+n4,d7.s 1 1
fmpy d4,d7,d3 fadd.s d3,d1 x:(r0)+,d4.s y:(r5)+,d2.s
;junk into d2.s 1 1