UM10429
All information provided in this document is subject to legal disclaimers.
© NXP B.V. 2010. All rights reserved.
User manual
Rev. 1 — 20 October 2010
207 of 258
NXP Semiconductors
UM10429
Chapter 19: Appendix LPC1102 ARM Cortex-M0 reference
19.4.4.4.5
Examples
LDR
R0, LookUpTable
; Load R0 with a word of data from an address
; labelled as LookUpTable.
LDR
R3, [PC, #100]
; Load R3 with memory word at (PC + 100).
19.4.4.5 LDM and STM
Load and Store Multiple registers.
19.4.4.5.1
Syntax
LDM
Rn
{!}, reglist
STM
Rn
!, reglist
where:
Rn
is the register on which the memory addresses are based.
! writeback suffix.
reglist
is a list of one or more registers to be loaded or stored, enclosed in braces. It can
contain register ranges. It must be comma separated if it contains more than one
register or register range, see
LDMIA and LDMFD are synonyms for LDM. LDMIA refers to the base register being
Incremented After each access. LDMFD refers to its use for popping data from Full
Descending stacks.
STMIA and STMEA are synonyms for STM. STMIA refers to the base register being
Incremented After each access. STMEA refers to its use for pushing data onto Empty
Ascending stacks.
19.4.4.5.2
Operation
LDM instructions load the registers in
reglist
with word values from memory addresses
based on
Rn
.
STM instructions store the word values in the registers in
reglist
to memory addresses
based on
Rn
.
The memory addresses used for the accesses are at 4-byte intervals ranging from the
value in the register specified by
Rn
to the value in the register specified by
Rn
+ 4 * (
n
-1),
where
n
is the number of registers in
reglist
. The accesses happens in order of increasing
register numbers, with the lowest numbered register using the lowest memory address
and the highest number register using the highest memory address. If the writeback suffix
is specified, the value in the register specified by
Rn
+ 4 *
n
is written back to the register
specified by
Rn
.
19.4.4.5.3
Restrictions
In these instructions:
•
reglist
and
Rn
are limited to R0-R7.
•
the writeback suffix must always be used unless the instruction is an LDM where
reglist also contains
Rn
, in which case the writeback suffix must not be used.