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