INSTRUCTION SET
S3C4510B
FORMAT 14: PUSH/POP REGISTERS
11
10
9
15
14
13
12
8
7
0
Rlist
1
0
1
1
L
1
0
R
[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
Figure 3-43. 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 3-21.
NOTE
The stack is always assumed to be full descending.
Table 3-21. PUSH and POP Instructions
L
0
0
B
0
1
THUMB
Assembler
ARM Equivalent
Action
PUSH { Rlist }
STMDB R13!, { Rlist }
Push the registers specified by Rlist onto the stack.
Update the stack pointer.
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
1
0
1
POP { Rlist }
LDMIA R13!, { Rlist }
Pop values off the stack into the registers specified
by Rlist. Update the stack pointer.
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.
3-88