ADDL ACC,P << PM
6-37
ADDL ACC,P << PM
Add Shifted P to Accumulator
SYNTAX OPTIONS
OPCODE
OBJMODE
RPT
CYC
ADDL ACC,P << PM
0001 0000 1010 1100
X
Y
N+1
Note:
This instruction is an alias for the ”MOVA T,loc16” operation with “loc16 = @T” addressing mode.
Operands
ACC
Accumulator register
P
Product register
<< PM
Product shift mode
Description
Add to the ACC register the contents of the P register, shifted as specified by
the product shift mode (PM):
ACC = ACC + P << PM
Flags and
Z
After the addition, the Z flag is set if the ACC value is zero, else Z is cleared.
g
Modes
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 (OVM = 0, disabled) then if the operation generates a positive overflow,
then the counter is incremented and if the operation generates a negative
overflow, then the counter is decremented. If (OVM = 1, enabled) then the
counter is not affected by the operation.
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
If this operation is repeated, then the instruction will be executed N+1 times.
The state of the Z, N, C flags will reflect the final result. The V flag will be set if
an intermediate overflow occurs. The OVC flag will count intermediate
overflows if overflow mode is disabled.
Example
; Calculate: Y = ((M*X >> 4) + (B << 11)) >> 10
; Y, M, X, B are Q15 values
SPM −4
; Set product shift to >> 4
SETC SXM
; Enable sign extension mode
MOV T,@M
; T = M
MPY P,T,@X
; P = M * X
MOV ACC,@B << 11
; ACC = S:B << 11
ADDL ACC,P << PM
; ACC = (M*X >> 4) + (S:B << 11)
MOVH @Y,ACC << 5
; Store Q15 result into Y
Содержание TMS320C28x
Страница 30: ...1 12...
Страница 80: ...This page intentionally left blank 2 50 This page intentionally left blank...
Страница 269: ...IN loc16 PA 6 112 MOV AL 0 AL 0 UOUT IORegC AL IOspace IORegC AL 10...
Страница 308: ...MAXCUL P loc32 6 151 Saturate MOVL Var64 2 ACC Store result into Var64 MOVL Var64 P...
Страница 509: ...SUBL ACC P PM 6 352 SUBL ACC P PM ACC S B 11 M X 4 MOVH Y ACC 5 Store Q15 result into Y...
Страница 585: ...This page intentionally left blank 7 32 This page intentionally left blank...