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
138
12.6.5.20UHSUB16 and UHSUB8
Unsigned Halving Subtract 16 and Unsigned Halving Subtract 8
Syntax
op{cond}{Rd,} RnRm
where:
opis any of:
UHSUB16 Performs two unsigned 16-bit integer additions, halves the results,
 and writes the results to the destination register.
UHSUB8 Performs four unsigned 8-bit integer additions, halves the results, and
writes the results to the destination register.
condis an optional condition code, see 
.
Rdis the destination register.
Rnis the first register holding the operand.
Rmis the second register holding the operand.
Operation
Use these instructions to add 16-bit and 8-bit data and then to halve the result before writing the result to the 
destination register:
The UHSUB16 instruction:
1. Subtracts each halfword of the second operand from the corresponding halfword of the first operand.
2. Shuffles each halfword result to the right by one bit, halving the data.
3. Writes each unsigned halfword result to the corresponding halfwords in the destination register.
The UHSUB8 instruction:
1. Subtracts each byte of second operand from the corresponding byte of the first operand.
2. Shuffles each byte result by one bit to the right, halving the data. 
3. Writes the unsigned byte results to the corresponding byte of the destination register.
Restrictions
Do not use SP and do not use PC
.
Condition Flags
These instructions do not change the flags.
Examples
UHSUB16 R1, R0 
 ; Subtracts halfwords in R0 from corresponding halfword of 
 ; R1 and writes halved result to corresponding halfword in R1
UHSUB8
R4, R0, R5  ; Subtracts bytes of R5 from corresponding byte in R0 and 
 ; writes halved result to corresponding byte in R4.
12.6.5.21SEL
Select Bytes. Selects each byte of its result from either its first operand or its second operand, according to the 
values of the GE flags.
Syntax
SEL{<c>}{<q>} {<Rd>,} <Rn>, <Rm>
where:
c, qare standard assembler syntax fields.