ZAPA
6-396
ZAPA Zero Accumulator and P Register
SYNTAX OPTIONS OPCODE OBJMODE RPT CYC
ZAPA 0101 0110 0011 0011 1 − 1
Operands None
Description Zero the ACC and P registers as well as the overflow counter (OVC):
ACC = 0;
P = 0;
OVC = 0;
Flags and
Modes
N
The N bit is set.
Z
The Z bit is cleared.
Repeat This instruction is not repeatable. If this instruction follows the RPT
instruction, it resets the repeat counter (RPTC) and executes only once.
Example
; Calculate sum of product using 32-bit multiply and retain
; high result:
; int32 X[N]; // Data information
; int32 C[N]; // Coefficient information (located in low 4M)
; int32 sum = 0;
; for(i=0; i < N; i++)
; sum = sum + ((X[i] * C[i]) >> 32) >> 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−1) ; Repeat next instruction N times
||QMACL P,*XAR2++,*XAR7++ ; ACC = ACC + P >> 5,
; P = (X[i] * C[i]) >> 32
; i++
ADDL ACC,P << PM ; Perform final accumulate
MOVL @sum,ACC ; Store final result into sum