3. レジスタからメモリへのストア

3.1. ドキュメントの表記規則

表記: Rt, Rn は、特に明記されない限り ARM レジスタ R0-R7 を表します。immN は幅 N ビットの即値を表すため、imm5 は 0-31 の範囲に制約されます。[Rn + imm5] は、Rn とオフセット imm5 を加算して得られるメモリアドレスの内容です。オフセットはバイト単位で測定されます。これらの命令は条件フラグに影響を与えません。

3.2. レジスタストア

  • str(Rt, [Rn, imm7]) [Rn + imm7] = Rt 32 ビットワードをストア

  • strb(Rt, [Rn, imm5]) [Rn + imm5] = Rt バイトをストア(b0-b7)

  • strh(Rt, [Rn, imm6]) [Rn + imm6] = Rt 16 ビットハーフワードをストア(b0-b15)

指定された即値オフセットはバイト単位で測定されます。したがって str の場合、7 ビットの値により、最大オフセット 31 ワードで 32 ビットワード境界に整列した値にアクセスできます。strh の場合、6 ビットの値により、最大オフセット 31 ハーフワードで 16 ビットハーフワード境界に整列した値にアクセスできます。