5.4.18 ASSIGN ADDRESS(アドレスの取得)

データ名のアドレスを取得します。

形式
[図データ]
  • ADDRESS(データ名指定1)
    アドレス名,アドレスデータ項目,またはポインタ項目を指定します。
    指定したデータ名に,DATAオペランドで指定したデータ名のアドレスが設定されます。
  • DATA(データ名指定2)
    アドレスを取得したいデータ名を指定します。
注意事項
  • データ名指定2には,次のデータ項目は指定できません。
    ・指標名
    ・アドレス名
    ・動的長基本項目
  • データ名指定2にブール項目を指定した場合,バイト境界になっていればアドレスを取得できます。バイト境界になっていない場合は,エラーになります。
  • アドレスを取得したあとは,取得したアドレスが指すデータが参照できるかどうかは確認しません。参照できなくなっていた場合,そのアドレスを使ってデータ操作したときの動作は保証しません。
  • データ名指定1にアドレス名を指定したとき,指定したアドレス名で参照されるデータとデータ名指定2に指定したデータの構造のチェックはしません。二つの構造が違うことによる領域破壊などの動作は保証しません。
    例えば,次の条件で,データ名指定1にADDRS,データ名指定2にSRC_DATA1を指定した場合,DATA1(アドレス名ADDRSで参照されるデータ)とSRC_DATA1は,構造およびサイズとも異なりますが,ASSIGN ADDRESSコマンドは成功します。
    ただし,DATA3 OF DATA1の部分はSRC_DATA1の範囲外になるため,その値を更新すると,領域破壊になります。
    ・COBOLソースでのデータ定義
     01 DATA1 ADDRESSED BY ADDRS.
      02 DATA2 PIC X(10).
      02 DATA3 PIC X(10).
     01 SRC_DATA1 PIC X(10).
    ・デバッガで実行するTDコマンド
     ASSIGN ADDRESS( ADDRS ) DATA( SRC_DATA1 )
     ASSIGN DATA( DATA3 OF DATA1) VALUE( "SAMPLE" ) *> 領域破壊になる。
  • データ名指定2にアドレス名で参照されたデータ名を指定した場合,アドレス名が指すアドレスが設定されます。