15
15 – 25
ALU
SUBTRACT Y-X / SUBTRACT Y-X with BORROW
Syntax: [ IF cond ] AR = yop – xop ;
AF xop + C – 1
–xop + C – 1
–xop + constant
–xop + constant + C – 1
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 GT AR = AY0 – AX0 + C – 1;
Description: Test the optional condition and, if true, then perform the
specified subtraction. If the condition is not true then perform a no-operation.
Omitting the condition performs the subtraction unconditionally. The
subtraction operation subtracts the second source operand from the first
source operand, optionally adds the ALU Carry bit (AC) minus 1 (H#0001),
and stores the result in the destination register. The (C–1) quantity effectively
implements a borrow capability for multiprecision subtractions. 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.
(instruction continues on next page)