ADDCU ACC,loc16
6-35
ADDCU ACC,loc16 Add Unsigned Value Plus Carry to Accumulator
SYNTAX OPTIONS OPCODE OBJMODE RPT CYC
ADDCU ACC,loc16 0000 1100 LLLL LLLL X − 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, zero extended, plus the content of the carry flag bit to the ACC
register:
ACC = ACC + 0:[loc16] + C;
Flags and
Z
After the addition, the Z flag is set if the ACC value is zero, else Z is cleared.
Modes
N
After the addition, the N flag is set if bit 31 of the ACC is 1, else N is cleared.
C
The state of the carry bit before execution is included in the addition. 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 This instruction is not repeatable. If this instruction follows the RPT
instruction, it resets the repeat counter (RPTC) and executes only once.
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