ADRL 疑似命令

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

Note

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

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

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

ワード境界で整列されているアドレスから ±256KB バイトの範囲

32 ビット Thumb

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

16 ビット Thumb

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

所定の範囲は、Thumb コードでは現在の命令のアドレスから 4 バイト、ARM コードでは現在の命令のアドレスから 2 ワードの位置からの範囲です。境界調整がこの位置から 16 バイト以上の相対位置にある場合、より広範囲のアドレスを利用できます。

Show/hide関連項目

Copyright © 2010-2011 ARM. All rights reserved.ARM DUI 0489EJ
Non-ConfidentialID081711