指定したシンボル名を所属するマクロ・ボディ内でのみ有効なローカル・シンボルとして定義します。
[指定形式]
シンボル欄
|
ニモニック欄
|
オペランド欄
|
コメント欄
|
[ラベル:]
|
.LOCAL
|
シンボル名[, ... ]
|
[; コメント]
|
[機能]
- | 指定したシンボル名を所属するマクロ・ボディ内でのみ有効なローカル・シンボルとして定義します。 |
[詳細説明]
- | マクロ・ボディ内でシンボルを定義しているマクロを2回以上参照すると,シンボルは二重定義エラーとなります。
.LOCAL疑似命令を使用することにより,シンボルを定義しているマクロを複数回,参照することができます。 |
- | シンボル名の最大数は利用可能なメモリ量に依存します。 |
- | .LOCAL疑似命令はマクロ定義中,およびCソースの“#pragma inline_asm”中のみ記述できます。 |
- | .LOCAL疑似命令は,オペランド欄で指定したシンボルを参照する前に記述しなければなりません。マクロ・ボディ先頭での記述を推奨します。 |
- | 1つのモジュール中で.LOCAL疑似命令により定義するシンボル名は,すべて別名でなければなりません。各マクロ・ボディ中で使用するローカル・シンボル名に同一名は使用できません。 |
- | .LOCAL疑似命令で定義したシンボルをマクロ外から参照することはできません。 |
- | シンボルとして予約語を記述することはできません。ただし,ユーザ定義シンボルと同じシンボルを記述した場合は,.LOCAL疑似命令の定義が優先されます。 |
- | マクロ定義の仮引数と同名のシンボルを,そのマクロ定義中に.LOCAL疑似命令でローカル・シンボル定義した場合はエラーとなります。 |
[使用例]
m1 .MACRO par
.LOCAL AA, BB
AA: .DB4 AA
BB: .DB4 par
.ENDM
m1 10
m1 20
|
展開すると次のようになります。
.LL00000000: .DB4 .LL00000000
.LL00000001: .DB4 10
.LL00000002: .DB4 .LL00000002
.LL00000003: .DB4 20
|