Everything

.public


オペランドに記述したシンボルをほかのモジュールから参照できるよう宣言します。

[指定形式]

シンボル欄
ニモニック欄
オペランド欄
コメント欄
[ラベル:]
.public
ラベル名[, 絶対式 ]
[; コメント]

[機能]

-

オペランドに記述したシンボルをほかのモジュールから参照できるよう宣言します。

[用途]

-

ほかのモジュールから参照されるシンボルを定義している場合には,必ず,そのシンボルを.public疑似命令で外部定義宣言します。

[詳細説明]

-

第1オペランドで指定したラベル名と同名のラベルを外部ラベルとして宣言します。
なお,第2オペランドを指定した場合,指定した値をそのラベルの示すデータのサイズとして指定します。ただし,サイズの指定は無視されます(CX との互換性のため,記述は可能)。

外部シンボル(GLOBALのバインディング・クラスを持つシンボル)です。

 

-

本疑似命令と.extern疑似命令は外部ラベルを宣言するという機能において変わりませんが,指定したファイル内に定義を持つラベルを外部ラベルとして宣言する場合は本疑似命令を用い,指定したファイル内に定義を持たないラベルを外部ラベルとして宣言する場合は.extern疑似命令を用いるようにしてください。

-

.public疑似命令は,ソース・プログラムのどこに記述してもかまいません。

-

.public疑似命令は1行で1つのシンボルのみ定義可能です。

-

オペランドに記述するシンボルが,同一モジュール内で定義されていない場合はワーニングを出力します。どのファイルにも定義がない場合,リンク時にエラーとなります。

-

次のシンボルは,オペランドとして記述することはできません。

(a)

.set疑似命令で定義したシンボル

(b)

セクション名

(c)

マクロ名

[使用例]

-

モジュール1

        .public A1              ; (a)
        .extern B1
 
A1:
        .db2    0x10
 
        .cseg   text
        jr      B1

-

モジュール2

        .public B1              ; (b)
        .extern A1
        .cseg   text
B1:
        mov     A1, r12

(a)

シンボルA1が,ほかのモジュールから参照されるシンボルであることを宣言します。

(b)

シンボルB1が,ほかのモジュールから参照されるシンボルであることを宣言します。