恭喜,你发布的帖子
发布于 2016-10-14 00:32:31
35楼
用数学方法代替了部分逻辑指令,其实做的事是一样的
4个字节分别AND 16#0F,就是高4位清零
*16 相当于SLW4 SHL(IN:="Tag_5", N:=4)
*256 相当于SLW8 SHL(IN:="Tag_8", N:=8)
*4096 相当于SLW12 SHL(IN :="Tag_9" ,N:=12)
然后都加起来,就相当于把4个字节OR
用SCL一行就实现了,好方法
db1.dbw20 := (MB1 AND 16#0F)+(MB2 AND 16#0F)*16+(MB3 AND 16#0F)*256+(MB3 AND 16#0F)*4096
SCL指令一行实现,不知道有没有经过验证? 在STL中,好像只有I和DI和R(整数双整数实数)可以加减乘除,w和DW(字双)字可以做乘法吗? 这个我真的不敢肯定。也望知道的回答一下,谢谢!
另外,在SCL中:db1.dbw20 := (MB1 AND 16#0F)+(MB2 AND 16#0F)*16+(MB3 AND 16#0F)*256+(MB3 AND 16#0F)*4096 这里面(字节字)用到了数学运算的乘法,不知道在SCL里面是不是合法的?懂的讲解一下,谢谢。
请填写推广理由:
分享
只看
楼主