ARM の定数と変数の宣言
2007/9/7
次の ARM アセンブリ ディレクティブは定数の設定に使用されます。
ディレクティブ | 構文 | 説明 |
---|---|---|
* |
|
EQU と同じ。 固定式またはプログラム相対式にシンボリック ラベルを指定します。 |
CN |
|
コプロセッサ レジスタ番号を指定します。c0 から c15 はあらかじめ定義されており、ラベルとしては使用できません。 |
CP |
|
コプロセッサ番号に名前を指定します。可能であれば 0 から 15 までの範囲内にする必要があります。 p0 から p15 までの名前はあらかじめ定義されており、ラベルとしては使用できません。 |
EQU |
|
固定式またはプログラム相対式にシンボリック ラベルを指定します。 |
FN |
|
可能であれば浮動小数点レジスタの名前を定義します。 F0 から F7 および f0 から f7 までの名前はあらかじめ定義されています。 あらかじめ定義されているレジスタ名はラベルとしては使用できませんが、数値式としては使用できます。 |
RN |
|
レジスタ名を定義します。名前でのみレジスタを参照します。 R0 から R15、r0 から r15、PC、pc、LR および lr の名前はあらかじめ定義されています。 あらかじめ定義されているレジスタ名はラベルとしては使用できませんが、数値式としては使用できます。 |
このアセンブラではグローバル変数とローカル変数がサポートされます。グローバル変数のスコープは、ソース ファイル全体ですが、ローカル変数のスコープはマクロの特定のインスタンス化に限定されます。
次の表に、ローカル変数とグローバル変数の設定に使用される ARM アセンブリ ディレクティブを示します。
ディレクティブ | 構文 | 説明 |
---|---|---|
GBLA |
|
グローバル算術変数を定義します。 算術変数の値は、32 ビットの符号なし整数です。 |
GBLL |
|
グローバル論理変数を定義します。 |
GBLS |
|
グローバル文字列変数を定義します。 |
LCLA |
|
初期状態が 0 のローカル算術変数を定義します。 |
LCLL |
|
初期状態が FALSE のローカル論理変数を定義します。 |
LCLS |
|
初期状態が NULL 文字列のローカル文字列変数を定義します。 |
SETA |
|
算術変数の値を設定します。 |
SETL |
|
論理変数の値を設定します。 |
SETS |
|
文字列変数の値を設定します。 |
文字列変数の値を設定するときは、引用符を使用する必要があります。
ローカル変数は、マクロ内からのみ宣言することができます。また、変数を宣言した後はその名前を他の用途に使用できません。
次に示すように、変数の中にはアセンブラによって値が置き換えられるものがあります。
- 変数名に $ 文字のプレフィックスがある場合、アセンブラは行の構文を確認する前に変数値を置き換えます。
- 変数が論理変数か算術変数の場合、アセンブラは変数に対して .STR 演算を実行し、変数をその演算の結果に置き換えます。