LDR(PC 相対)

レジスタロード命令です。アドレスは、PC からのオフセットです。

Show/hide構文

LDR{type}{cond}{.W} Rt, label
LDRD{cond} Rt, Rt2, label        ; ダブルワード

各パラメータには以下の意味があります。

type

次のいずれかを指定できます。

B

符号なしバイト(ロード時に 32 ビットにゼロ拡張)

SB

符号付きバイト(LDR のみ。32 ビットに符号拡張)

H

符号なしハーフワード(ロード時に 32 ビットにゼロ拡張)

SH

符号付きハーフワード(LDR のみ。32 ビットに符号拡張)

-

省略(ワード)

cond

任意の条件コードを指定します。

.W

任意に指定できる幅指定子を指定します。

Rt

ロードまたはストアするレジスタを指定します。

Rt2

2 番目にロードまたはストアするレジスタを指定します。

label

PC 相対式を指定します。

label は現在の命令から限定された距離にある必要があります。

Note

同等の構文が ARM コードの STR 命令で利用できますが、それらは ARMv6T2 以降では非推奨です。

Show/hideオフセットの範囲とアーキテクチャ

アセンブラは、PC からオフセットを算出します。label が範囲外である場合、アセンブラはエラーを生成します。

Table 8 はラベルと現在の命令との間の可能なオフセットを示します。

Table 8. PC 相対オフセット

命令オフセット範囲アーキテクチャ
ARM LDRLDRBLDRSBLDRHLDRSH [a]+/- 4095すべて
ARM LDRD+/- 255v5TE +
32 ビット Thumb LDRLDRBLDRSBLDRHLDRSH [a]+/- 4095v6T2、v7
32 ビット Thumb LDRD+/- 1020 [b]v6T2、v7
16 ビット Thumb LDR [c]0-1020 [b]すべての T

[a] ワードのロードでは Rt に PC(プログラムカウンタ)を指定できます。PC へのロードを実行すると、ロードされたアドレスへの分岐が発生します。ARMv4 では、ロードされたアドレスのビット [1:0] は 0b00 になっている必要があります。ARMv5T 以降のバージョンでは、ビット [1:0] が 0b10 であってはりません。ビット [0] が 1 になっている場合、Thumb 状態で実行が継続されます。それ以外の場合は、ARM 状態で継続されます。

[b] 4 の倍数で指定して下さい。

[c] Rt には R0 ~ R7 の範囲のレジスタを指定する必要があります。バイト、ハーフワード、ダブルワードの 16 ビット命令はありません。


Note

ARMv7-M では、LDRD(PC 相対)命令はワード境界で整列されているアドレス上にある必要があります。

Show/hide32 ビット Thumb の LDR(PC 相対)

.W 幅指定子を指定して、LDR で Thumb コードの 32 ビット命令を生成できます。LDR.W を指定した場合は、16 ビット LDR を使用してターゲットに到達できる場合でも、常に 32 ビット命令が生成されます。

参考として、32 ビット Thumb LDR 命令を使用して到達できるターゲットで失敗が発生する場合でも、.W 指定なしの LDR は常に 16 ビット Thumb コードの命令を生成します。

Show/hideダブルワードレジスタの制約条件

32 ビット Thumb 命令の場合、Rt または Rt2 に SP または PC は指定できません。

ARM 命令には、以下の制約条件が適用されます。

  • Rt には偶数番号のレジスタを指定する必要があります。

  • Rt に LR は指定できません。

  • R12Rt に使用しないことを強く推奨します。

  • Rt2R(t + 1)であることが必要です。

Show/hideSP の使用

ARM では、Rt での SP を LDR ワード命令で使用できます。Rt での SP は LDR 非ワード ARM 命令で使用できますが、これは ARMv6T2 以降では非推奨です。

Thumb では、Rt での SP は LDR ワード命令だけで使用できます。これらの命令での、他のすべての SP の使用は、Thumb コードでは許可されていません。

Show/hide関連項目

Copyright © 2010-2011 ARM. All rights reserved.ARM DUI 0489FJ
Non-ConfidentialID111211