このドキュメンテーションは、MicroPython の最新開発ブランチのためのものです。 リリースバージョンでは利用できない機能に言及することがあります。

特定のリリースのドキュメントをお探しの場合は、左側のドロップダウンメニューを使って、 望みのバージョンを選択します。

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 ハーフワードのオフセットでアクセスできます。