概要
メモリ上のデータをブロック単位でリングシフトします。
開始アドレス-終了アドレス間で、ブロック単位(指定ワード数単位)のリングシフトを行います。エラーが発生した場合、LS9150にエラーステータスを書き出します。
書式
memring (開始アドレス, 終了アドレス, 1ブロックのワード数)
パラメータ1 : 内部デバイス
パラメータ2 : 内部デバイス
パラメータ3 : 数値(1~640)
パラメータ1 < パラメータ2 の場合、ブロックデータは上に移動する。
パラメータ1 > パラメータ2 の場合、ブロックデータは下に移動する。
開始ワードアドレスと終了ワードアドレスに指定するデバイスは、必ず種類(LSもしくはUSR)を統一させてください。
記述例1
memring ([w:[#INTERNAL]LS1000], [w:[#INTERNAL]LS1030], 10)
(パラメータ1 < パラメータ2 の場合)
10ワード単位で、データが上に移動します。
記述例2
memring ([w:[#INTERNAL]LS1030], [w:[#INTERNAL]LS1000], 10)
(パラメータ1 > パラメータ2 の場合)
10ワード単位で、データが下に移動します。
記述例3
memring ([w:[#INTERNAL]LS1000], [w:[#INTERNAL]LS1050], 10)
(データがすべて0のブロックが範囲内に存在する場合)
先頭ブロックからデータ0のブロックまでの範囲内だけで、ブロック(10ワード)単位でデータが上に移動します。データ0のブロック以降にデータが存在しても無視されます。
記述例4
memring ([w:[#INTERNAL]LS1050], [w:[#INTERNAL]LS1000], 10)
(データ0 のブロックが範囲内に存在する場合)
先頭ブロックからデータ0のブロックまでの範囲内だけで、ブロック(10ワード)単位でデータが下に移動します。データ0のブロック以降にデータが存在しても無視されます。
エラーステータス
エディタ関数名 |
LSエリア |
エラーステータス |
要因 |
memring ( ) |
LS9150 |
0000h |
正常終了 |
0001h |
パラメータエラー |
||
0003h |
書き込み、読み込みエラー |
処理時間は、開始アドレスと終了アドレスで指定される範囲に比例します、広範囲を指定するほど処理時間がかかります。処理が完了するまで部品処理は更新されません。
開始アドレス、終了アドレスで指定できる内部デバイスの有効範囲はユーザエリア(LS20~LS2031、LS2096~LS8191)のみです。