 | Assembler User Guide |  |
|
|
| Load and store multiple instructions available in ARM and ThumbLoad and store multiple instructions available in ARM and ThumbThe following instructions are available in both ARM and Thumb instruction sets: LDMSTMStore Multiple registers. PUSHStore multiple registers onto the stack and update the stack pointer. POPLoad multiple registers off the stack, and update the stack pointer.
In LDM and STM instructions: When the base register is updated to point to the next block in memory, this is called writeback, that is, the adjusted address is written back to the base register. In PUSH and POP instructions: The stack pointer (SP) is the base register, and is always updated. The address is incremented after each transfer in POP instructions, and decremented before each transfer in PUSH instructions. The list of registers loaded or stored can include: in ARM instructions, any or all of R0-R12, SP, LR, and PC in 32-bit Thumb instructions, any or all of R0-R12, and optionally LR or PC (POP only) with some restrictions in 16-bit Thumb instructions, any or all of R0-R7, and optionally LR (PUSH only) or PC (POP only).
NoteUse of SP in the list of registers in any of these ARM instructions is deprecated. ARM STM and PUSH instructions that use PC in the list of registers, and ARM LDM and POP instructions that use both PC and LR in the list of registers are deprecated. See also
|
|