ALU
ADD / ADD with CARRY
Syntax: [ IF cond ] AR = xop + yop ;
AF + C
+ yop + C
+ constant
+ constant + C
Permissible xops Permissible yops Permissible conds (see Table 15.9)
AX0 MR2 AY0 EQ LE AC
AX1 MR1 AY1 NE NEG NOT AC
AR MR0 AF GT POS MV
SR1 GE AV NOT MV
SR0 LT NOT AV NOT CE
Permissible constants (ADSP-217x, ADSP-218x, ADSP-21msp58/59 only)
0, 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32767
–2, –3, –5, –9, –17, –33, –65, –129, –257, –513, –1025, –2049, –4097, –8193, –16385, –
32768
Example: IF EQ AR = AX0 + AY0 + C;
AR = AR + 512;
Description: Test the optional condition and, if true, perform the specified
addition. If false then perform a no-operation. Omitting the condition
performs the addition unconditionally. The addition operation adds the first
source operand to the second source operand along with the ALU carry bit,
AC, (if designated by the “+C” notation), using binary addition. The result is
stored in the destination register. The operands are contained in the data
registers or constant specified in the instruction.
The xop + constant operation is only available on the ADSP-217x, ADSP-218x,
and ADSP-21msp58/59 processors and may not be used in multifunction
instructions.
Status Generated:
ASTAT: 7 6 543210
SS MV AQ AS AC AV AN AZ
––––****
AZ Set if the result equals zero. Cleared otherwise.
AN Set if the result is negative. Cleared otherwise.
AV Set if an arithmetic overflow occurs. Cleared otherwise.
AC Set if a carry is generated. Cleared otherwise.
15 – 21
15
(instruction continues on next page)