本小节主要介绍了两个移动/复制指令:MOV指令和COP指令。
MOV指令将源数据复制到目的数据中,源数据保持不变。支持的数据类型有单整型、整型、双整型和实型。
COP指令和MOV指令类似,但是更灵活,支持的数据类型也更多。支持的数据类型有单整型、整型、双整型、实型、字符串型和数据结构体。COP指令是将源数据复制到目的数据中,复制的字节数为:字节数=Length∗(Destination数据类型的字节数)。COP指令的源数据和目的数据的数据类型应当相同。需要指出的是,COP指令对连续的内存进行操作,进行直接字节到字节的内存复制。所以,如果复制的字节数大于源数据的长度,将为剩余元素复制到无法预料的数据。
如图4-55所示,D1和D2为DINT型数据、I1[0]为4维INT型数组I1的首位元素,通过COP指令将D1的数据复制到I1[0]~I1[3]中,MOV指令将I1[0]的数据复制到D2中。当两个梯级条件成立时,亦即C1和C2常开开关为真时,运算结果如图4-56所示。
图4-55 MOV指令和COP指令实例
图4-55 MOV指令和COP指令实例(www.xing528.com)
图4-56 实例运算结果
通过分析实例的运算结果可以知道,对于COP指令,由于D1的长度小于复制的字节数,所以导致I1[2]和I1[3]元素中的数据被更改,产生错误。而对于MOV指令,虽然I1[0]的字节数小于D2的字节数,但是系统会默认将高位补零,并不会出错。读者可以通过实例更清楚地明白MOV指令和COP指令在用法上的注意事项和不同点。
图4-56 实例运算结果
通过分析实例的运算结果可以知道,对于COP指令,由于D1的长度小于复制的字节数,所以导致I1[2]和I1[3]元素中的数据被更改,产生错误。而对于MOV指令,虽然I1[0]的字节数小于D2的字节数,但是系统会默认将高位补零,并不会出错。读者可以通过实例更清楚地明白MOV指令和COP指令在用法上的注意事项和不同点。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。