2. メモリからレジスタへのロード
2.1. この文書の表記規則
表記: Rt, Rn は、特に記載がない限り ARM のレジスタ R0〜R7 を表します。 immN は幅 N ビットの即値を表すので、 imm5 は 0〜31 の範囲に制限されます。 [Rn + immN] は、Rn とオフセット immN を加えて得られるメモリアドレスの内容です。オフセットはバイト単位です。これらの命令は条件フラグに影響します。
2.2. レジスタのロード
ldr(Rt, [Rn, imm7])
Rt = [Rn + imm7]32 ビットのワードをロードldrb(Rt, [Rn, imm5])
Rt = [Rn + imm5]1バイトをロードldrh(Rt, [Rn, imm6])
Rt = [Rn + imm6]16 ビットのハーフワードをロード
バイトまたはハーフワードをロードした場合、値はゼロ拡張されて 32 ビットになります。
指定する即値のオフセットはバイト単位です。したがって ldr の場合、7 ビットの値により、32 ビットワード境界に整列された値に最大 31 ワードのオフセットでアクセスできます。 ldrh の場合、6 ビットの値により、16 ビットハーフワード境界に整列された値に最大 31 ハーフワードのオフセットでアクセスできます。