DMAC ACC:P,loc32,*XAR7/++
6-88
Example
;
Calculate sum of product using dual 16-bit multiply:
;
int16 X[N]
; Data information
;
int16 C[N]
; Coefficient information (located in low 4M)
;
; Data and Coeff must be aligned to even address
;
; N must be an even number
;
sum = 0;
;
for(i=0; i < N; i++)
;
sum = sum + (X[i] * C[i]) >> 5;
MOVL XAR2,#X
; XAR2 = pointer to X
MOVL XAR7,#C
; XAR7 = pointer to C
SPM −5
; Set product shift to ”>> 5”
ZAPA
; Zero ACC, P, OVC
RPT #(N/2)−1
; Repeat next instruction N/2 times
||DMAC P,*XAR2++,*XAR7++
; ACC = ACC + (X[i+1] * C[i+1]) >> 5
; P = P + (X[i] * C[i]) >> 5 i++
ADDL ACC,@P
; Perform final accumulate
MOVL @sum,ACC
; Store final result into sum
Содержание TMS320C28x
Страница 30: ...1 12...
Страница 80: ...This page intentionally left blank 2 50 This page intentionally left blank...
Страница 269: ...IN loc16 PA 6 112 MOV AL 0 AL 0 UOUT IORegC AL IOspace IORegC AL 10...
Страница 308: ...MAXCUL P loc32 6 151 Saturate MOVL Var64 2 ACC Store result into Var64 MOVL Var64 P...
Страница 509: ...SUBL ACC P PM 6 352 SUBL ACC P PM ACC S B 11 M X 4 MOVH Y ACC 5 Store Q15 result into Y...
Страница 585: ...This page intentionally left blank 7 32 This page intentionally left blank...