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 STR (immediate) It has encodings from the following instruction sets: A32 ( A1 ) and T32 ( T4 ) . != 1111 0 1 0 1 0 0 1 0 1 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 PUSH{<c>}{<q>} <single_register_list> STR{<c>}{<q>} <Rt>, [SP, #-4]! Unconditionally 1 1 1 1 1 0 0 0 0 1 0 0 1 1 0 1 1 1 0 1 0 0 0 0 0 1 0 0 PUSH{<c>}{<q>} <single_register_list> STR{<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 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. <Rt> For encoding T4: is the general-purpose register to be transferred, encoded in the "Rt" field.