SAM3SD8C Atmel Corporation, SAM3SD8C Datasheet - Page 99

no-image

SAM3SD8C

Manufacturer Part Number
SAM3SD8C
Description
Manufacturer
Atmel Corporation
Datasheets
10.11.7
10.11.7.1
10.11.7.2
10.11.7.3
10.11.7.4
10.11.7.5
11090A–ATARM–10-Feb-12
11090A–ATARM–10-Feb-12
PUSH
PUSH
POP
PUSH and POP
Syntax
Operation
Restrictions
Condition flags
Examples
{R0,R4-R7}
{R2,LR}
{R0,R10,PC}
Push registers onto, and pop registers off a full-descending stack.
where:
cond
reglist
It must be comma separated if it contains more than one register or register range.
PUSH and POP are synonyms for STMDB and LDM (or LDMIA) with the memory addresses for
the access based on SP, and with the final address for the access written back to the SP. PUSH
and POP are the preferred mnemonics in these cases.
PUSH stores registers on the stack in order of decreasing the register numbers, with the highest
numbered register using the highest memory address and the lowest numbered register using
the lowest memory address.
POP loads registers from the stack in order of increasing register numbers, with the lowest num-
bered register using the lowest memory address and the highest numbered register using the
highest memory address.
See
In these instructions:
When PC is in reglist in a POP instruction:
These instructions do not change the flags.
• reglist must not contain SP
• for the PUSH instruction, reglist must not contain PC
• for the POP instruction, reglist must not contain PC if it contains LR.
• bit[0] of the value loaded to the PC must be 1 for correct execution, and a branch occurs to
• if the instruction is conditional, it must be the last instruction in the IT block.
this halfword-aligned address
PUSH{cond} reglist
POP{cond} reglist
“LDM and STM” on page 97
is an optional condition code, see
is a non-empty list of registers, enclosed in braces. It can contain register ranges.
for more information.
“Conditional execution” on page
SAM3S8/SD8
SAM3S8/SD8
84.
99
99

Related parts for SAM3SD8C