You copied the Doc URL to your clipboard.

ARM Compiler armasm User Guide : STR (register)

STR (register)

Store Register (register).

Syntax

STR Wt, [Xn|SP, Rm{, extend {amount}}] ; 32-bit general registers

STR Xt, [Xn|SP, Rm{, extend {amount}}] ; 64-bit general registers

Where:

Wt

Is the 32-bit name of the general-purpose register to be transferred.

amount

Is the index shift amount, optional and defaulting to #0 when extend is not LSL:

32-bit general registers

Can be one of #0 or #2.

64-bit general registers

Can be one of #0 or #3.

Xt

Is the 64-bit name of the general-purpose register to be transferred.

Xn|SP

Is the 64-bit name of the general-purpose base register or stack pointer.

R

Is the index width specifier, and can be either W or X.

m

Is the number [0-30] of the general-purpose index register or the name ZR (31).

extend

Is the index extend/shift specifier, defaulting to LSL, and can be one of the values shown in Usage.

Usage

Store Register (register) calculates an address from a base register value and an immediate offset, and stores a 32-bit word or a 64-bit doubleword to the calculated address, from a register. For information about memory accesses, see Load/Store addressing modes in the ARMv8-A Architecture Reference Manual.

The instruction uses an offset addressing mode, that calculates the address used for the memory access from a base register value and an immediate offset. The offset can be optionally shifted and extended.

The following table shows the valid specifier combinations:

Table 17-23 STR (register) specifier combinations

R extend
W SXTW
W UXTW
X LSL
X SXTX
Was this page helpful? Yes No