Format 14: push/pop registers – Samsung S3C2440A User Manual

Page 152

Advertising
background image

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.

Advertising