POP (single register)
Pop Single Register from Stack
loads a single general-purpose register from the stack, loading from the address in SP, and updates SP to point just above the loaded data
LDR (immediate)
It has encodings from the following instruction sets:
A32 (
A1
)
and
T32 (
T4
)
.
!= 1111
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
POP{<c>}{<q>} <single_register_list>
LDR{<c>}{<q>} <Rt>, [SP], #4
Unconditionally
1
1
1
1
1
0
0
0
0
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
POP{<c>}{<q>} <single_register_list>
LDR{<c>}{<q>} <Rt>, [SP], #4
Unconditionally
<c>
See Standard assembler syntax fields.
<q>
See Standard assembler syntax fields.
<single_register_list>
Is the general-purpose register <Rt> to be loaded surrounded by { and }.
<Rt>
For encoding A1: is the general-purpose register to be transferred, encoded in the "Rt" field. The PC can be used. If the PC is used, the instruction branches to the address (data) loaded to the PC. This is an interworking branch, see Pseudocode description of operations on the AArch32 general-purpose registers and the PC.
<Rt>
For encoding T4: is the general-purpose register to be transferred, encoded in the "Rt" field. The PC can be used, provided the instruction is either outside an IT block or the last instruction of an IT block. If the PC is used, the instruction branches to the address (data) loaded to the PC. This is an interworking branch, see Pseudocode description of operations on the AArch32 general-purpose registers and the PC.