Multiplier
32x32 Long Multiplication
IMPYAL P,XT,loc32 P = u(XT)*u(loc32)
QMPYAL ACC,XT,loc32 ACC = (XT)*(loc32)
X
Y
X
XO*Y0
Z1 Z0
IMACL P,loc32,*XAR7 ACC += P; P = u(loc32)*u(loc32)
QMACL P,loc32,*XAR7 ACC += P; P = (loc32)*(loc32)
Integer long multiplication
u(long) = u(long) * u(long)
Fraction long multiplication:
(long) = (long) * (long)
(long) 64 = (long) 32 * (long) 32
Y1 * X1
Z3 Z2
Accumulator P-register
Repeat Instruction
Repeat Next: RPT
Features:
Next instruction iterated N+1 times
Saves code space - 1 word
Low overhead - 1 cycle
Easy to use
Non-interruptible
Requires use of | | before next line
May be nested within BANZ loops
Options:
RPT #8bit up to 256 iterations
RPT loc16 location “loc16” holds count value
Instruction Cycles
RPT
BANZ
1
4
.
N
Example :
int x[5]={0,0,0,0,0};
x .usect “samp”,5
MOV AR1,#x
RPT #4
|| MOV *XAR1++,#0
Refer to User Guide for more repeatable instructions
C28x - Appendix C - Assembly Programming C - 11