Datasheet

117
11011B–ATARM–21-Feb-12
SAM3N
10.13.8 REV, REV16, REVSH, and RBIT
Reverse bytes and Reverse bits.
10.13.8.1 Syntax
op{cond} Rd, Rn
where:
op is any of:
REV
Reverse byte order in a word.
REV16
Reverse byte order in each halfword independently.
REVSH
Reverse byte order in the bottom halfword, and sign extend to 32 bits.
RBIT
Reverse the bit order in a 32-bit word.
cond is an optional condition code, see “Conditional execution” on page 84.
Rd is the destination register.
Rn is the register holding the operand.
10.13.8.2 Operation
Use these instructions to change endianness of data:
REV
converts 32-bit big-endian data into little-endian data or 32-bit little-endian data
into big-endian data.
REV16
converts 16-bit big-endian data into little-endian data or 16-bit little-endian data
into big-endian data.
REVSH
converts either:
16-bit signed big-endian data into 32-bit signed little-endian data
16-bit signed little-endian data into 32-bit signed big-endian data.
10.13.8.3 Restrictions
Do not use SP and do not use PC
.
10.13.8.4 Condition flags
These instructions do not change the flags.
10.13.8.5 Examples
REV R3, R7 ; Reverse byte order of value in R7 and write it to R3
REV16 R0, R0 ; Reverse byte order of each 16-bit halfword in R0
REVSH R0, R5 ; Reverse Signed Halfword
REVHS R3, R7 ; Reverse with Higher or Same condition
RBIT R7, R8 ; Reverse bit order of value in R8 and write the result to R7