The following can be specified as a displacement (disp):
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.
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 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. |
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. |
A message is output if an odd-numbered register is specified in the first operand of the st23.dw instruction. |