Atmel Xplained Pro Evaluation Kit ATSAM4E-XPRO ATSAM4E-XPRO Data Sheet

Product codes
ATSAM4E-XPRO
Page of 1506
SAM4E [DATASHEET]
Atmel-11157D-ATARM-SAM4E16-SAM4E8-Datasheet_12-Jun-14
130
12.6.5.20  UHSUB16 and UHSUB8
Unsigned Halving Subtract 16 and Unsigned Halving Subtract 8
Syntax
op{cond}{Rd,} RnRm
where:
op
is 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.
cond
is an optional condition code, see 
.
Rd
is the destination register.
Rn
is the first register holding the operand.
Rm
is 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.