ADDRESS OF および ADDRESS OF 特殊レジスターの使用

ILE COBOL プログラムの中で ADDRESS OF を指定すると、ADDRESS OF または ADDRESS OF 特殊レジスターとして参照される計算済みのアドレスを使用するかどうかをコンパイラーが判別します。 ADDRESS OF 特殊レジスターは、データ構造の開始アドレスで、すべての計算アドレスはそのアドレスから決定されます。 ADDRESS OF 特殊レジスターはその構造の開始アドレスなので、01 レベルか 77 レベルのデータ項目でなければなりません。 このデータ項目を変更するような参照を行うと、特殊レジスターはもはやデータ構造の開始アドレスではなくなります。 それは計算アドレスすなわち ADDRESS OF になります。 ADDRESS OF 基本項目を使用していて、かつ ADDRESS OF 01 レベル項目が NULL に設定されているなら、ポインター例外 (MCH3601) になります。

計算された ADDRESS OF は、項目が変更される可能性のある場所では使用できません。 変更できるのは ADDRESS OF 特殊レジスターだけです。 たとえば 図 83 17  では、ADDRESS OF 特殊レジスター項目のレベルは 01 なので、SET ステートメントはこのレジスターを使用します。  18  では、レベル 01 の項目ですが、参照変更されているため、ADDRESS OF が使用されています。