Format 14: push/pop registers – Samsung S3C2440A User Manual
Page 152
![background image](/manuals/143554/152/background.png)
S3C2440A RISC MICROPROCESSOR
THUMB INSTRUCTION SET
4-31
FORMAT 14: PUSH/POP REGISTERS
[7:0] Register List
[8] PC/LR Bit
0 = Do not store LR/Load PC
1 = Store LR/Load PC
[11] Load/Store Bit
0 = Store to memory
1 = Load from memory
15
0
1
14
10
0
1
13
12
11
Rlist
1
L
0
7
8
9
1
R
Figure 4-15. Format 14
OPERATION
The instructions in this group allow registers 0-7 and optionally LR to be pushed onto the stack, and registers 0-7
and optionally PC to be popped off the stack. The THUMB assembler syntax is shown in Table 4-15.
NOTE
The stack is always assumed to be Full Descending.
Table 4-15. PUSH and POP Instructions
L
B
THUMB assembler
ARM equivalent
Description
0
0
PUSH { Rlist }
STMDB R13!, { Rlist }
Push the registers specified by Rlist onto
the stack. Update the stack pointer.
0
1
PUSH { Rlist, LR }
STMDB R13!,
{ Rlist, R14 }
Push the Link Register and the registers
specified by Rlist (if any) onto the stack.
Update the stack pointer.
1
0
POP { Rlist }
LDMIA R13!, { Rlist }
Pop values off the stack into the registers
specified by Rlist. Update the stack
pointer.
1
1
POP { Rlist, PC }
LDMIA R13!, {Rlist, R15}
Pop values off the stack and load into the
registers specified by Rlist. Pop the PC
off the stack. Update the stack pointer.