22.11.2.7 メモリ検索

指定された範囲からブロック単位でデータの検索を行います。ブロックの先頭から任意の位置(オフセット)にあるデータをブロック単位で比較し、検索結果を格納アドレスに返します。一致するブロックがある場合、ブロックのオフセット値(1~)が入り、一致するブロックがない場合、FFFFhが格納されます。エラーが発生した場合、LS9153にエラーステータスを書き出します。

_memsearch (検索元ブロックアドレス,検索開始アドレス,検索終了アドレス,検索結果格納アドレス,先頭ブロックからのオフセット,比較するワード数,1ブロックのワード数)

書込まれるデータ

記述例1

_memsearch([w:[#INTERNAL]LS1000],[w:[#INTERNAL]LS1005],[w:[#INTERNAL]LS1025],[w:[#INTERNAL]LS0100],0,1,5)

(検索元ブロックのオフセット0から1ワード間と同じ値のブロックがないか、LS1005からLS1025間で検索し、結果をLS0100に格納する場合)

検索範囲先頭から検索した結果、「ブロック1」の値が「検索元ブロック」の値と一致するため、LS0100に格納される検索結果は「1」となります。

記述例2

_memsearch([w:[#INTERNAL]LS1000],[w:[#INTERNAL]LS1005],[w:[#INTERNAL]LS1025],[w:[#INTERNAL]LS0100],3,2,5)

(検索元ブロックのオフセット3から2ワード間と同じ値のブロックがないか、LS1005~LS1025間で検索し、結果をLS0100に格納する場合)

検索範囲先頭から検索した結果、「ブロック4」の値が「検索元ブロック」の値と一致するため、LS0100に格納される検索結果は「4」となります。

エラーステータス

エディタ関数名

LSエリア

エラーステータス

要因

_memsearch ( )

LS9153

0000h

正常終了

0001h

パラメータエラー

0003h

書き込み、読み込みエラー