Atmel ARM-Based Evaluation Kit for SAM4S16C, 32-Bit ARM® Cortex® Microcontroller ATSAM4S-WPIR-RD ATSAM4S-WPIR-RD Data Sheet

Product codes
ATSAM4S-WPIR-RD
Page of 1231
SAM4S Series [DATASHEET]
Atmel-11100G-ATARM-SAM4S-Datasheet_27-May-14
164
Examples
QADD16
R7, R4, R2  ; Adds halfwords of R4 with corresponding halfword of
; R2, saturates to 16 bits and writes to
; corresponding halfword of R7
QADD8    R3, R1, R6
; Adds bytes of R1 to the corresponding bytes of R6,
 ; saturates to 8 bits and writes to corresponding
 ; byte of R3
QSUB16   R4, R2, R3
; Subtracts halfwords of R3 from corresponding
 ; halfword of R2, saturates to 16 bits, writes to
 ; corresponding halfword of R4
QSUB8
  R4, R2, R5
; Subtracts bytes of R5 from the corresponding byte
 ; in R2, saturates to 8 bits, writes to corresponding
 ; byte of R4.
12.6.7.4 QASX and QSAX
Saturating Add and Subtract with Exchange and Saturating Subtract and Add with Exchange, signed.
Syntax
op{cond} {Rd}, RmRn
where:
opis one of:
QASX Add and Subtract with Exchange and Saturate.
QSAX Subtract and Add with Exchange and Saturate.
condis an optional condition code, see 
.
Rdis the destination register.
Rn, Rmare registers holding the first and second operands.
Operation
The QASX instruction:
1. Adds the top halfword of the source operand with the bottom halfword of the second operand.
2. Subtracts the top halfword of the second operand from the bottom highword of the first operand.
3. Saturates the result of the subtraction and writes a 16-bit signed integer in the range –2
15
 ≤ x ≤ 2
15
 – 1, 
where x equals 16, to the bottom halfword of the destination register.
4. Saturates the results of the sum and writes a 16-bit signed integer in the range 
–2
15
 ≤ x ≤ 2
15
 – 1, where x equals 16, to the top halfword of the destination register.
The QSAX instruction:
1. Subtracts the bottom halfword of the second operand from the top highword of the first operand.
2. Adds the bottom halfword of the source operand with the top halfword of the second operand.
3. Saturates the results of the sum and writes a 16-bit signed integer in the range 
–2
15
 ≤ x ≤ 2
15
 – 1, where 
x
 equals 16, to the bottom halfword of the destination register.
4. Saturates the result of the subtraction and writes a 16-bit signed integer in the range –2
15
 ≤ x ≤ 2
15
 – 1, 
where 
x
 equals 16, to the top halfword of the destination register.
Restrictions
Do not use SP and do not use PC
.
Condition Flags
These instructions do not affect the condition code flags.