引数リスト

表 1 は、外部関数パラメーター・リストの オフセット +16 (10 進) で、関数やサブルーチン・コードが受け取る 解析済み引数リストのフォーマットを示します。 この表は、3 つの引数の例です。 TSO/E は引数リストに対して、マッピング・マクロ IRXARGTB を提供します。マッピング・マクロは、SYS1.MACLIB にあります。

表 1. 引数リストのフォーマット - 3 つの引数
オフセット (10 進) バイト数 フィールド名 説明
0 4 ARGSTRING_PTR 引数 1 のアドレス
4 4 ARGSTRING_LENGTH 引数 1 の長さ
8 4 ARGSTRING_PTR 引数 2 のアドレス
12 4 ARGSTRING_LENGTH 引数 2 の長さ
16 4 ARGSTRING_PTR 引数 3 のアドレス
20 4 ARGSTRING_LENGTH 引数 3 の長さ
24 8 X'FFFFFFFFFFFFFFFF'

引数リストで各引数は、引数のアドレスとその長さで構成されます。 引数リストは X'FFFFFFFFFFFFFFFF' で終了します。

引数が省略されている場合、引数のアドレスは 0 です。 引数として関数に NULL 文字列がパスされた場合、引数のアドレスはゼロではないですが、引数の長さは 0 です。 たとえば、この発動を使用して、MYFUNC というアセンブラー・ファンクションを呼び出したとします。
Z = MYFUNC(,'','ABC')
引数リストには、3 つの引数のアドレスと長さ、および最後に X'FFFFFFFFFFFFFFFF' が含まれます。
  • 最初の引数は省略された引数 (仮引数とも呼ばれます) なので、アドレス 0 で示されます。
  • 2 番目の引数はヌル・ストリングなので、非ゼロのアドレスと長さ 0 で示されます。
  • 3 番目の引数はストリング 'ABC' なので、文字 'ABC' へのポインターと長さ 3 で示されます。