ADRL 疑似命令

PC 相対アドレスまたはレジスタ相対アドレスをレジスタにロードします。ADR 命令と似ていますが、ADRL では 2 つのデータ処理命令が生成されるため、ADR より広範囲のアドレスをロードできます。

Note

Thumb 命令をアセンブルする場合、ADRL は、ARMv6T2 以降でのみ使用できます。

Show/hide構文

ADRL{cond} Rd,label

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

cond

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

Rd

ロードするレジスタを指定します。

label

PC 相対式またはレジスタ相対式を指定します。

Show/hide使用法

ADRL は常に 2 つの 32 ビット命令にアセンブルされます。1 つの命令でアドレスに到達できる場合でも、2 番目の冗余命令が生成されます。

アセンブラが 2 つの命令でアドレスを作成できない場合は、エラーメッセージが生成され、アセンブルに失敗します。より広範囲のアドレスをロードするには、LDR 疑似命令を使用します。

ADRL は、アドレスが PC 相対またはレジスタ相対であるため、位置非依存コードを生成します。

label が PC 相対である場合は、ADRL 疑似命令と同じアセンブラ領域内のアドレスを指定する必要があります。

BX または BLX 命令のターゲットを生成するために ADRL を使用するときは、ターゲットに Thumb 命令が含まれている場合、そのアドレスの Thumb ビット(ビット 0)を設定する必要があります。

Show/hideアーキテクチャと範囲

利用できる範囲は、使用する命令セットによって異なります。

ARM

命令の範囲は、2 つの ADD 命令または 2 つの SUB 命令によって生成できる任意の値です。つまり、2 つの値の加算によって生成できる任意の値で、それぞれの値は、32 ビットのワード内で 8 ビッの値を右に任意の偶数ビット分ロテートして得られます。詳細については、定数としての Operand2を参照して下さい。

32 ビット Thumb

バイト、ハーフワード、またはワード境界で整列されているアドレスから ア1MB バイトの範囲

16 ビット Thumb

ADRL 命令は使用できません。

所定の範囲は、Thumb コードでは現在の命令のアドレスから 4 バイト、ARM コードでは現在の命令のアドレスから 2 ワードの位置からの範囲です。

Show/hide関連項目

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