MPYS P,T,loc16
6-238
Example
; Calculate using 16-bit multiply:
; Y = (X0*C0) >> 2) + (X1*C1 >> 2) + (X2*C2 >> 2)
SPM −2 ; Set product shift to >> 2
MOVP T,@X2 ; ACC = P, T = X2
MPYS P,T,@C2 ; ACC = ACC − P = 0, P = T*C2
MOV T,@X1 ; T = X1
MPYA P,T,@C1 ; ACC = X2*C2>>2, P = T*C1
MOV T,@X0 ; T = X0
MPYA P,T,@C0 ; ACC = X1*C1>>2 + X2*C2>>2, P = T*C0
ADDL ACC,P << PM ; ACC = X0*C0>>2 + X1*C1>>2 + X2*C2>>2
MOVL @Y,ACC ; Store result into Y