st23


Data is stored.

[Syntax]

-

st23.b reg2, disp23[reg1]

-

st23.h reg2, disp23[reg1]

-

st23.w reg2, disp23[reg1]

-

st23.dw reg2, disp23[reg1]

Note

For st23.dw instruction, the mnemonic "st.dw" can be used.

 

The following can be specified as a displacement (disp):

-

Absolute expression having a value of up to 23 bits

-

Relative expression

-

Relative expression having #label with LOWW applied (for st.23.dw)

[Function]

The st23.b, st23.h, and st23.w instructions store the data of the lower 1 byte, lower 1 halfword, and 1 word, respectively, of the register specified by the first operand to the address specified by the second operand. The st23.dw instruction loads the word data from the register specified in the first operand into the lower 32 bits, and the word data at reg2 + 1 into the upper 32 bits, and then stores this double-word data into the address specified in the second operand.

[Description]

-

The assembler generates one st machine instructionNote.

Note

The st machine instruction takes an immediate value in the range of -4,194,304 to +4,194,303 (0xFFC00000 to 0x3FFFFF) as the displacement.

 

-

If disp23 is omitted, the assembler assumes 0.

-

If an absolute expression, a relative expression having !label, a relative expression with #label is specified as disp23, [reg1] can be omitted. If omitted, the assembler assumes that [r0] is specified.

-

If a relative expression with $label is specified as disp23, [reg1] can be omitted. If omitted, the assembler assumes that [gp] is specified.

-

If a relative expression with %label is specified as disp23, [reg1] can be omitted. If omitted, the assembler assumes that [ep] is specified.

[Flag]

CY

---

OV

---

S

---

Z

---

SAT

---

[Caution]

-

If a value that is not a multiple of 2 is specified as the disp of st.h or st.w, the assembler aligns disp with 2 and generates a code. Then, the assembler outputs the following messages.

W0550019 : Illegal operand (immediate must be multiple of 2).

-

A message is output if an odd-numbered register is specified in the first operand of the st23.dw instruction.

W0550026 : Illegal register number, aligned odd register(reg) to be even register(reg-1).