Everything

.local


指定した文字列を特有の識別子として置き換えられるローカル・シンボルとして宣言します。

[指定形式]

シンボル欄
ニモニック欄
オペランド欄
コメント欄
 
.local
シンボル名[, ... ]
[; コメント]

[機能]

-

指定したシンボル名をアセンブラ特有のシンボルとして置き換えられるローカル・シンボルとして宣言します。

[用途]

-

マクロ・ボディ内でシンボルを定義しているマクロを2回以上参照すると,シンボルは二重定義エラーとなります。
.local疑似命令を使用することにより,シンボルを定義しているマクロを複数回,参照することができます。

[詳細説明]

-

シンボル名の最大数は利用可能なメモリ量に依存します。

-

ラベル,またはシンボル定義疑似命令で定義したシンボルに対して,その定義名をマクロ呼び出しごとの固有な名前に置き換えます。

-

シンボル名には,マクロ・ボディ内で本疑似命令以降に記述されたラベル,またはシンボル定義疑似命令で定義されたシンボルのみ指定できます。

-

.local疑似命令は,マクロ・ボディ内,REPT-ENDMブロック内,IRP-ENDMブロック内,およびCソースのinline_asm関数内にのみ記述可能で,それ以外の場合はエラーを出力します。

-

1つのブロック内に同名のローカル・シンボルを複数宣言した場合は,エラーを出力します。異なるブロックや,入れ子のブロックの内外であれば同名で宣言可能です。

[使用例]

m1      .macro  x
        .local  a, b
        a:      .dw     a
        b:      .dw     x
.endm
m1      10
m1      20

 

展開すると次のようになります。

.??00000000:    .dw     .??00000000
.??00000001:    .dw     10
.??00000002:    .dw     .??00000002
.??00000003:    .dw     20