概要
データバッファのオフセットから格納されている文字列データを1 バイトずつ内部デバイスに文字列数分コピーします。
パラメータ2で指定した文字列のパラメータ3で指定したオフセット値からパラメータ4で指定した長さ分の文字列をパラメータ1で指定した内部デバイスに格納します。
書式
_dlcopy (コピー先アドレス, コピー元データバッファ, コピー元のオフセット値, コピーする文字数)
パラメータ1 : 内部デバイス
パラメータ2 : データバッファ
パラメータ3 : 数値、内部デバイス、テンポラリアドレス〈パラメータ3に設定できる範囲は0~1024です。〉
パラメータ4 : 数値、内部デバイス、テンポラリアドレス〈パラメータ4に設定できる範囲は1~1024です。〉
記述例1
_dlcopy ([w:[#INTERNAL]LS0100], databuf0, 2, 4)
databuf0のオフセット2から4バイト分抽出したデータをLS0100~LS0103に書き込みます。内部デバイスには1バイト単位で書き込まれます。
データバッファから1バイト読み出して内部デバイスに書き込みます。このため、内部デバイスには下位8ビット(1バイト)分しか使用しません。上位8ビット(1バイト)は、0でクリアされます。
コピー元のオフセット値+コピーする文字数がデータバッファを超えるような指定をした場合は、文字列エラーステータス[e:STR_ERR_STAT]のエラー番号3(文字列抽出エラー)が発生します。
エラーが発生した段階で処理が終了し、メイン関数の先頭に戻ります。(命令が呼び出された関数の中にある場合、呼び出し元の関数の呼び出された次の行に戻ります。)