非 COBOL プログラムへのパラメータの受け渡し順序

The order in which the parameters are passed, since the calling program might not pass parameters in the order that the called program expects them.

CALL 文の USING 句でパラメータを指定して、COBOL プログラムへ渡す場合と同じ方法で非 COBOL プログラムへパラーメータを渡します。次に使用例を示します。

CALL call-convention "program-name" USING parameter-1, parameter-2

JCOBOL プログラムを呼び出すときと同じように、パラメータの順序は重要です。ただし、Pascal などの言語では、パラメータの順序が COBOL プログラムで予測される順序とは逆になります。呼び出し規約を使用して、パラメータを渡す順序を定義することができます。

COBOL プログラムは、パラメータをスタックに入れてからサブプログラムを呼び出しパラメータを渡します。右から左 (逆の順序) または左から右 (指定した順序) のどちらかで、パラメータをスタックに入れることができます。最初の方法は、COBOL および C で使用する規約です。 2 番目は、Pascal などの言語で使用します。

たとえば、次の文を使用して呼び出されるサブプログラムのエントリでパラメータを渡します。

CALL "sub-prog" USING  parameter-1
                       parameter-2
                        ...
                       parameter-n-1
                       parameter-n

スタックは次の例のいずれかになります。いずれの場合でも、パラメータはアドレスの大きいメモリからアドレスの小さいメモリへと、スタックに入れられます。スタックポインタは、スタックの次の空きスロットを指すレジスタです。

Figure 1. *
*