以下のコードの抜粋を使用して、データを受け渡すさまざまな方法について説明します。
MOVE 16 TO X.
CALL ABC USING
BY REFERENCE X
BY CONTENT X
BY VALUE X
BY CONTENT ADDRESS OF X
レジスター 1 には、パラメーター・リストのメモリー・アドレスが入ります。 パラメーター・リストには 4 つの項目、すなわちデータ項目 X のインスタンスごとに 1 つの項目があり、CALL ステートメントで X を受け渡す順序で並んでいます。
1 番目の項目は、BY REFERENCE での受け渡しを示しています。パラメーター・リストには、呼び出し側プログラムの WORKING-STORAGE 内の X のメモリー・アドレスを指すポインターが入ります。
2 番目の項目は、BY CONTENT での受け渡しを示しています。パラメーター・リストには、一時ストレージ内のデータ項目 X のコピーを指すポインターが入ります。
3 番目の項目は、BY VALUE での受け渡しを示しています。パラメーター・リストには、データ項目 X の内容 (このコード・サンプルでは 10 進値 16) が入ります。
4 番目の項目は、BY CONTENT でのデータ項目 X のアドレスの受け渡しを示しています。パラメーター・リストには、一時ストレージ内のメモリーを指すポインターが入ります。そのメモリーには、データ項目 X のアドレスが入ります。
図の説明の終わり。