摘要
删除指定块并将如下数据块上移。要删除的块使用偏移加以指定。当发生错误时,会将错误状态写入LS9151。
格式
_memshift ([起始地址]、[结束地址]、要删除的块偏移、1个块中的字数)
参数1:内部寄存器
参数2:内部寄存器
参数3:数值(1至65535)、内部寄存器、临时变量
参数4:数值(1至640)
请务必将起始地址和结束地址设置为同类型寄存器(LS或USR)。
确保[参数1]小于[参数2]。否则,会发生错误。
表达式示例1:
_memshift ([w:[#INTERNAL]LS1000], [w:[#INTERNAL]LS1030], 1, 10)
数据以块为单位上移(1个块=10个字),最后一个块(10个字)被清零。
表达式示例2:
_memshift ([w:[#INTERNAL]LS1000], [w:[#INTERNAL]LS1030], 2, 10)
数据从偏移2的位置开始以块为单位上移(1个块=10个字),最后一个块(10个字)被清零。
错误状态
编辑器函数名称 |
LS区 |
错误状态 |
原因 |
_memshift ( ) |
LS9151 |
0000h |
成功完成 |
0001h |
参数错误 | ||
0003h |
写入/读取错误 |
所需的处理时间与开始和结束地址指定的范围成比例。指定的范围越大,处理时间越长。直到处理完成后才刷新部件。
如果将一个超出了指定开始和结束地址范围的值指定为要删除块的偏移量,该功能不能正常运行。
可以指定的有效LS地址范围限定为指定用户区(LS20至LS2031和LS2096至LS8191)。