MPYA P,loc16,#16bit
6-231
MPYA P,loc16,#16bit 16 X 16-Bit Multiply and Add Previous Product
SYNTAX OPTIONS OPCODE OBJMODE RPT CYC
MPYA P,loc16,#16bit 0001 0101 LLLL LLLL
CCCC CCCC CCCC CCCC
X − 1
Operands P Product register
loc16 Addressing mode (see Chapter 5)
#16bit 16-bit immediate constant value
Description Add the previous product (stored in the P register), shifted as specified by the
product shift mode (PM) bits, to the ACC register. Load the T register with the
content of the location pointed to by the “loc16” addressing mode. Multiply
the signed 16-bit content of the T register by the signed 16-bit constant value
and store the 32-bit result in the P register:
ACC = ACC + P << PM;
T = [loc16];
P = signed T * signed 16bit;
Flags and
Modes
Z After the operation, the Z flag is set if the ACC is zero, else Z is cleared.
N After the addition, the N flag is set if bit 31 of the ACC is 1, else N is cleared.
C If the addition generates a carry, C is set; otherwise C is cleared.
V If an overflow occurs, V is set; otherwise V is not affected.
OVC If overflow mode is disabled; and if the operation generates a positive
overflow, then the counter is incremented. If overflow mode is disabled; and if
the operation generates a negative overflow, then the counter is
decremented.
OVM If overflow mode bit is set; then the ACC value will saturate maximum
positive (0x7FFFFFFF) or maximum negative (0x80000000) if the
operation overflowed.
PM The value in the PM bits sets the shift mode for the output operation from the
product register. If the product shift value is positive (logical left shift
operation), then the low bits are zero filled. If the product shift value is
negative (arithmetic right shift operation), the upper bits are sign extended.
Repeat This instruction is not repeatable. If this instruction follows the RPT
instruction, it resets the repeat counter (RPTC) and executes only once.