.tocof 疑似命令

目的

ローカル・シンボルの定義を外部シンボルの目次にして、そのローカル・シンボルを式の中で使用できるようにします。

構文

項目 説明
.tocof Name1, Name2

description

.tocof 疑似命令は、 Name2 パラメーターをグローバル・シンボルとして宣言し、 Name1 シンボルを、そのシンボル Name2を含む別のモジュールの目次 (TOC) としてマークします。 結果として、ローカル・シンボルを外部シンボルの TOC として定義することができます。これにより、ローカル・シンボルを式で使用したり、呼び出されるモジュールの TOC (通常は .tc (T) ステートメントで) を参照したりすることができます。 この疑似命令は、このデータを TOC 外部シンボルのアドレスに初期化する再配置辞書項目 (RLD) を生成します。 .tocof 疑似命令は、呼び出し元が制御権を移動する前に、呼び出されたモジュールの TOC のアドレスを最初にロードする必要があるモジュール間呼び出しに使用できます。

パラメーター

項目 説明
Name1 Name2 値を含むモジュールの TOC として機能するローカル・シンボルを指定します。 Name1 記号は、 .tc (T) ステートメントに指定する必要があります。
Name2 TOC を含むモジュール内に存在するグローバル・シンボルを指定します。

以下の例は、 .tocof 疑似命令の使用法を示しています。


tocbeg:   .toc
apb:   .tc [tc],pb,tpb
# This is an unnamed TOC entry
# that contains two addresses:
# the address of pb and 
# the address of the TOC
# containing pb.
.tocof tpb,pb   
.set always,0x14
.csect [PR]
.using tocbeg,rtoc
l 14,apb
# Load R14 with the address
# of pb.
l rtoc,apb+4
# Load the TOC register with the
# address pb's TOC.
mtspr lr,14
# Move to Link Register.
bcr always,0
# Branch Conditional Register branch
# address is contained in the Link
# register.