『7x24小时有问必答』
“每周都要Smart”系列上新了!本期我们分享的内容是:移位和循环移位运算指令及其应用。

点击下方视频,立刻学起来吧!

移位和循环移位指令位于指令列表下移位/循环下拉菜单中,根据操作类型可以分为左移位,右移位,循环左移位,循环右移位四大类;根据操作数长度又可以分为字节移位指令,字移位指令,和双字移位指令。此外比较特殊的是,存在一个移位寄存器位指令,下面分别介绍:

01
左右移位指令

移位指令将输入值 IN 的位值,右移或左移 N位后,将结果送入输出 OUT 的存储单元中。

对于每一位移出后留下的空位,移位指令会补零。

如果移位计数 N 大于或等于允许的最大值(字节操作为 8、字操作为 16、双字操作为 32),则会按相应操作的最大次数对值进行移位。

字节操作是无符号操作。对于字操作和双字操作,使用有符号数据值时,也对符号位进行移位。

02
循环左右移位指令

循环移位指令将输入值 IN 的位值,循环右移或循环左移 N位后,将结果送入输出 OUT 的存储单元。

循环移位指令是环形的,即移出的位被移到另一端的空位,同时影响特殊存储器位。

如果循环移位计数大于或等于操作的最大值,CPU 会在执行循环移位前对移位计数执行求模运算以获得有效循环移位计数。

字节操作是无符号操作。对于字操作和双字操作,使用有符号数据值时,也对符号位进行移位。

03
移位寄存器位指令

移位寄存器位指令将位值移入移位寄存器,在指令的三个输入引脚中,S_BIT 指定移位寄存器最低有效位的位置;N 指定移位寄存器的长度和移位方向;DATA 的位值移入移位寄存器。

该指令和上述指令最大的区别在于,移位寄存器不在是以字节,字和双字为单位,而是根据需求自定义的长度单元,移入的数据也不再是补位0或者循环,而是由引脚确定,所以该指令在排序或控制产品流等方面会非常方便。

注册西门子官方工业商城会员,
解锁更多权益,十倍积分换好礼!
关注西门子数字化工业集团官方微信,助您在数字化转型之路上再进一步。无论您处于哪个行业,企业规模如何,我们都将凭借数字化企业解决方案以及层出不穷的创新技术,帮助您不断提升灵活性和生产力。
点击卡片,关注西门子数字化工业集团官方账号

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码