ADDU ACC,loc16
6-39
ADDU ACC,loc16 Add Unsigned Value to Accumulator
SYNTAX OPTIONS OPCODE OBJMODE RPT CYC
ADDU ACC,loc16 0000 1101 LLLL LLLL X Y N+1
Operands
ACC Accumulator register
loc16 Addressing mode (see Chapter 5)
Description Add the 16-bit contents of the location pointed to by the “loc16” addressing
mode to the ACC register. The addressed location is zero extended before the
add:
ACC = ACC + 0:[loc16];
Flags and
Modes
Z
After the addition, the Z flag is set if 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 (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.
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
; Add three 32-bit unsigned variables by 16-bit parts:
MOVU ACC,@VarAlow ; AH = 0, AL = VarAlow
ADD ACC,@VarAhigh << 16 ; AH = VarAhigh, AL = VarAlow
ADDU ACC,@VarBlow ; ACC = ACC + 0:VarBlow
ADD ACC,@VarBhigh << 16 ; ACC = ACC + VarBhigh << 16
ADDCU ACC,@VarClow ; ACC = ACC + VarClow + Carry
ADD ACC,@VarChigh << 16 ; ACC = ACC + VarChigh << 16