You copied the Doc URL to your clipboard.

PUSH (single register)

Push Single Register to Stack stores a single general-purpose register to the stack, storing to the 32-bit word below the address in SP, and updates SP to point to the start of the stored data.

This is an alias of STR (immediate). This means:

  • The encodings in this description are named to match the encodings of STR (immediate).
  • The description of STR (immediate) gives the operational pseudocode for this instruction.

It has encodings from the following instruction sets: A32 ( A1 ) and T32 ( T4 ) .

A1

313029282726252423222120191817161514131211109876543210
!= 1111010100101101Rt000000000100
condPUWRnimm12

Pre-indexed

PUSH{<c>}{<q>} <single_register_list>

is equivalent to

STR{<c>}{<q>} <Rt>, [SP, #-4]!

and is always the preferred disassembly.

T4

15141312111098765432101514131211109876543210
1111100001001101Rt110100000100
RnPUWimm8

Pre-indexed

PUSH{<c>}{<q>} <single_register_list> // (Standard syntax)

is equivalent to

STR{<c>}{<q>} <Rt>, [SP, #-4]!

and is always the preferred disassembly.

Assembler Symbols

<c>

See Standard assembler syntax fields.

<q>

See Standard assembler syntax fields.

<single_register_list>

Is the general-purpose register <Rt> to be stored 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, but this is deprecated.

For encoding T4: is the general-purpose register to be transferred, encoded in the "Rt" field.

Operation

The description of STR (immediate) gives the operational pseudocode for this instruction.

Was this page helpful? Yes No