摘要
以块为单位循环移位存储器中的数据。
以块为单位(按指定字数)在起始和结束地址之间执行循环移位。当发生错误时,会将错误状态写入LS9150。
格式
memring ([起始地址]、[结束地址]、1个块中的字数)
参数1:内部寄存器
参数2:内部寄存器
参数3:数值(1至640)
- 当参数1小于参数2时(P1<P2),块数据向上移位。
当参数1大于参数2时(P1>P2),块数据向下移位。
请务必将起始地址和结束地址设置为同类型寄存器(LS或USR)。
表达式示例1:
memring ([w:[#INTERNAL]LS1000], [w:[#INTERNAL]LS1030], 10)
(当参数1小于参数2时)(P1<P2))
数据以10个字块为单位向上移动。
表达式示例2:
memring ([w:[#INTERNAL]LS1030], [w:[#INTERNAL]LS1000], 10)
(当参数1大于参数2时)(P1>P2))
数据以10个字的块为单位向下移动。
表达式示例3:
memring ([w:[#INTERNAL]LS1000], [w:[#INTERNAL]LS1050], 10)
(当该范围包含所有字均为“0”的块时)
数据仅以10个字的块为单位向上移动,从起始块到全为“0”的数据块。如果在全为“0”数据的块后还存在数据,那么这些数据会被忽略。
表达式示例4:
memring ([w:[#INTERNAL]LS1050], [w:[#INTERNAL]LS1000], 10)
(当范围内存在全为“0”数据的块时)
数据仅以10个字块为单位向下移动,从起始块到全为“0”数据的块。如果在全为“0”数据的块后还存在数据,那么这些数据会被忽略。
错误状态
编辑器函数名称 |
LS区 |
错误状态 |
原因 |
memring ( ) |
LS9150 |
0000h |
成功完成 |
0001h |
参数错误 | ||
0003h |
写入/读取错误 |
所需的处理时间与开始和结束地址指定的范围成比例。指定的范围越大,处理时间越长。直到处理完成后才刷新部件。
可以指定的有效LS地址范围限定为指定用户区(LS20至LS2031和LS2096至LS8191)。