MPYXU P,T,loc16
6-242
MPYXU P,T,loc16 Multiply Signed Value by Unsigned Value
SYNTAX OPTIONS OPCODE OBJMODE RPT CYC
MPYXU P,T,loc16 0011 0010 LLLL LLLL X − 1
Operands P Product register
T Multiplicand register
loc16 Addressing mode (see Chapter 5)
Description Multiply the signed 16-bit content of the T register by the signed 16-bit
contents of the location pointed to by the “loc16” addressing mode and store
the 32-bit result in the P register:
P = signed T * unsigned [loc16];
Flags and
Modes
None
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 ”Y32 = X32 * M32” by parts using 16-bit multiply:
MOV T,@X32+0 ; T = unsigned low X32
MPYU ACC,T,@M32+0 ; ACC = T * unsigned low M32
MOV @Y32+0,AL ; Store low result into Y32
MOVU ACC,@AH ; Logical shift right ACC by 16
MOV T,@X32+1 ; T = signed high X32
MPYXU P,T,@M32+0 ; ACC = T * low unsigned M32
MOVA T,@M32+1 ; T = signed high M32, ACC += P
MPYXU P,T,@X32+0 ; ACC = T * low unsigned X32
ADDL ACC,@P ; Add P to ACC
MOV @Y32+1,AL ; Store high result into Y32