UM10462
All information provided in this document is subject to legal disclaimers.
© NXP B.V. 2016. All rights reserved.
User manual
Rev. 5.5 — 21 December 2016
463 of 523
NXP Semiconductors
UM10462
Chapter 24: LPC11U3x/2x/1x Appendix ARM Cortex-M0
•
imm
must be between:
–
0 and 1020 and an integer multiple of four for LDR and STR
using SP as the base register
–
0 and 124 and an integer multiple of four for LDR and STR
using R0-R7 as the base register
–
0 and 62 and an integer multiple of two for LDRH and STRH
–
0 and 31 for LDRB and STRB.
•
The computed address must be divisible by the number of bytes in the transaction,
see
.
24.4.4.2.4
Condition flags
These instructions do not change the flags.
24.4.4.2.5
Examples
LDR
R4, [R7
; Loads R4 from the address in R7.
STR
R2, [R0,#const-struc] ; const-struc is an expression evaluating
; to a constant in the range 0-1020.
24.4.4.3 LDR and STR, register offset
Load and Store with register offset.
24.4.4.3.1
Syntax
LDR
Rt
, [
Rn
,
Rm
]
LDR<B|H>
Rt
, [
Rn
,
Rm
]
LDR<SB|SH>
Rt
, [
Rn
,
Rm
]
STR
Rt
, [
Rn
,
Rm
]
STR<B|H>
Rt
, [
Rn
,
Rm
]
where:
Rt
is the register to load or store.
Rn
is the register on which the memory address is based.
Rm
is a register containing a value to be used as the offset.
24.4.4.3.2
Operation
LDR, LDRB, U, LDRSB and LDRSH load the register specified by
Rt
with either a word,
zero extended byte, zero extended halfword, sign extended byte or sign extended
halfword value from memory.
STR, STRB and STRH store the word, least-significant byte or lower halfword contained
in the single register specified by
Rt
into memory.
The memory address to load from or store to is the sum of the values in the registers
specified by
Rn
and
Rm
.