
DR
AFT
DR
AFT
DRAFT
DR
D
RAFT
DRAFT
DRA
FT DRAF
D
RAFT DRAFT DRAFT DRAFT DRAFT D
DRAFT
D
RAFT DRA
FT DRAFT DRAFT DRAFT DRA
UM10360_0
© NXP B.V. 2009. All rights reserved.
User manual
Rev. 00.06 — 5 June 2009
659 of 808
NXP Semiconductors
UM10360
Chapter 34: Appendix: Cortex-M3 User Guide
2.5.8 REV, REV16, REVSH, and RBIT
Reverse bytes and Reverse bits.
2.5.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
RBIT
Reverse the bit order in a 32-bit word.
cond
is an optional condition code, see
Rd
is the destination register.
Rn
is the register holding the operand.
2.5.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.
2.5.8.3
Restrictions
Do not use SP and do not use PC
.
2.5.8.4
Condition flags
These instructions do not change the flags.
2.5.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