ALU
ADD / ADD with CARRY
Syntax:
[ IF cond ]
AR
= xop + yop
;
AF
+ C
+ yop + C
+ constant
+ co 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
5
4
3
2
1
0
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)