Thumb Instruction Reference

5.1.5LDMIA and STMIA

Load and store multiple registers.

Syntax

op Rn!, {reglist}

where:

 

 

 

 

op

is either:

 

LDMIA

Load multiple, increment after

 

STMIA

Store multiple, increment after.

Rn

is the register containing the base address. Rn must be in the range r0-r7.

reglist

is a comma-separated list of low registers or low-register ranges.

 

 

Note

 

 

 

 

 

The braces in the syntax description are part of the instruction format.

They do not indicate that the register list is optional.

There must be at least one register in the list.

Usage

Registers are loaded stored and in numerical order, with the lowest numbered register at the address initially in Rn.

The value in Rn is incremented by 4 times the number of registers in reglist.

If Rn is in reglist:

for an LDMIA instruction, the final value of Rn is the value loaded, not the incremented address

for an STMIA instruction, the value stored for Rn is:

the initial value of Rn if Rn is the lowest-numbered register in reglist

unpredictable otherwise.

Architectures

These instructions are available in all T variants of the ARM architecture.

ARM DUI 0068B

Copyright © 2000, 2001 ARM Limited. All rights reserved.

5-13

Page 207
Image 207
ARM VERSION 1.2 manual Ldmia and Stmia, Load and store multiple registers, Load multiple, increment after