Ldm And Stm - ST STM32F0 Series Programming Manual

Hide thumbs Also See for STM32F0 Series:
Table of Contents

Advertisement

The STM32 Cortex-M0 instruction set
3.4.5

LDM and STM

Load and store multiple registers.
Syntax
LDM Rn{!}, reglist
STM Rn!, reglist
where:
'Rn' is the register on which the memory addresses are based
'!' is an optional writeback suffix. If ! is present, the final address that is loaded from or
stored to is written back into Rn.
'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.
Operation
LDM loads the registers in reglist with word values from memory addresses based on Rn.
STM stores the word values in the registers in reglist to memory addresses based on Rn.
The memory addresses used for accesses are at 4-byte intervals ranging from Rn to Rn + 4
* (n-1), where n is the number of registers in reglist. The accesses happen 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 of Rn + 4 * (n) or is written
back to the register specified by Rn.
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.
the value in the register specified by Rn must be word aligned. See
on page 39
for STM, if Rn appears in reglist, then it must be the first register in the list.
Condition flags
These instructions do not change the flags.
Examples
LDM
R0,{R0,R3,R4}
STMIA R1!,{R2-R4,R6}
46/91
Examples on page
for more information.
; LDMIA is a synonym for LDM
Doc ID 022979 Rev 1
46).
Address alignment
PM0215

Advertisement

Table of Contents
loading
Need help?

Need help?

Do you have a question about the STM32F0 Series and is the answer not in the manual?

Table of Contents