アセンブラー・プログラムが呼び出し元であるときには、R13 は呼び出し元の レジスター保存域 (18 ワード) を指さなければならず、保存域の 最初の 2 バイト はゼロでなければなりません。保存域の逆チェーンが有効な 31 ビット・アドレスで設定されなければなりません (すなわち、AMODE 24 での実行時には高位バイトをクリアしなければなりません)。
LA 13, SAVEAREA
.
.
.
SAVEAREA DS 18F
上記のようにすれば、AMODE 24 プログラムの場合は高位バイトがクリアされます。BAS 13,SKIP SAVEAREA DS 18F SKIP DS 0H
BAL 13,SKIP SAVEAREA DS 18F SKIP LA 13,0(,13)
この BAL 命令は、命令長コード、条件コード (CC)、およびプログラム・マスクを レジスターの高位バイトに入れます。BAL 命令ではなく BAS 命令を使用することをお勧めします。BAS 命令はゼロを高位バイトに 入れて、24 ビット・アドレッシング問題を防止するからです。
プログラムがパラメーターを渡す場合は、パラメーター・リストを準備して、このリストの アドレスを R1 にロードしなければなりません。パラメーター・リストを渡さない場合は、R1 をゼロに設定してください。R14 にはアセンブラー・プログラム内の戻りアドレスを入れなければならず、R15 に は COBOL プログラムの入り口点のアドレスを入れなければなりません。