简介
在指定位置(偏移)比较两个数据块,并将比较结果写入存储地址。
会将下面的值作为比较结果保存:当值等于:当目标数据大于原始数据时:当目标数据小于原始数据时:当发生错误时,会将错误状态值写入LS9152。
格式
_memcmp ([要比较的块地址], [比较块地址], [比较结果存储地址], 自起始块开始的偏移, 比较字数, 1个块中的字数)
参数1:内部寄存器
参数2:内部寄存器
参数3:内部寄存器
参数4:数值(0至639)、内部寄存器、临时变量
参数5:数值(1至640)
参数6:数值(1至640)
保存的数据
0:相等
1:比较自<比较至
2:比较自 > 比较至
表达式示例1:
_memcmp ([w:[#INTERNAL]LS1000], [w:[#INTERNAL]LS1005], [w:[#INTERNAL]LS0100], 0, 1, 5)
(比较块1和块2的一个字(从偏移0开始)并在LS0100中保存比较结果)。
由于原始值小于目标值,在LS0100中保存比较结果“2”。
表达式示例2:
_memcmp ([w:[#INTERNAL]LS1000], [w:[#INTERNAL]LS1010], [w:[#INTERNAL]LS0100], 2, 3, 5)
(比较块1和块3的一个字(从偏移2开始)并在LS0100中保存比较结果)。
由于原始值与目标值匹配,在LS0100保存比较结果“0”。
错误状态
编辑器函数名称 |
LS区 |
错误状态 |
原因 |
---|---|---|---|
_memcmp ( ) |
LS9152 |
0000h |
成功完成 |
0001h |
参数错误 | ||
0003h |
写入/读取错误 |
可以指定的有效LS地址范围限定为指定用户区(LS20至LS2031和LS2096至LS8191)。
当为块偏移值指定一个大于一个块中字数的值时,该功能不起作用。
当要比较的字数大于一个块时,该功能不起作用。