三菱FX3U系列—移位指令
用于对位元件进行位移操作,将位元件的数据在位级上进行移动。位移指令包括位左移(SFTL)、位右移(SFTR)、循环左移(ROL)和循环右移(ROR)。
目录
一、作用
用于对位元件进行位移操作,将位元件的数据在位级上进行移动。位移指令包括循环右移(ROR)、循环左移(ROL)、位右移(SFTR)和位左移(SFTL)。
一、种类
1、ROR循环右移
A、作用:
将位元件的数据在位级上向右循环移动指定的位数,移动后的位数从左侧重新进入右侧。
B、指令形式:[ROR/DROR/RORP]
[ROR Mn Kn] ROR是循环右移指令;Mn是软元件对象(组合位、数据寄存器等);Kn是每次移位个数。ROR是对16位数据进行移位;DROR是对32位数据进行移位;RORP是遇到上升沿才进行16位循环右移。
C、进位标志:M8022
对移位对象的位数中最高位的数据放在这个特殊辅助继电器中。
D、实例:
循环右移数据移动流程:
2、ROL循环左移
A、作用
将位元件的数据在位级上向左循环移动指定的位数,移动后的位数从右侧重新进入左侧。功能与循环右移相反。
B、指令形式:[ROL/DROL/ROLP]
[ROL Mn Kn] ROL是循环左移指令;Mn是软元件对象(组合位、数据寄存器等);Kn是每次移位个数。ROL是对16位数据进行移位;DROL是对32位数据进行移位;ROLP是遇到上升沿才进行16位循环左移。
C、进位标志:M8022
对移位对象的位数中最低位的数据放在这个特殊辅助继电器中。
D、实例:
3、SFTR位右移
A、作用:
使指定位长度的位元件每次右移一定的位长度,移动后的空位用0填充。
B、指令形式:[SFTR/SFTRP]
[SFTR Mn Yn Kn1 Kn2] SFTR是位右移指令;Mn需要移位的软元件;Yn需要被移位的软元件;Kn1指定Yn具有几位长度;Kn2指定Mn每次移位几位长度。SFTR是正常的位右移指令;SFTRP是遇到上升沿才进行位右移的指令。
C、实例:
SFTR位右移数据移动流程图:
4、SFTL位右移
A、作用:
使指定位长度的位元件每次左移一定的位长度,移动后的空位用0填充。功能与位右移相反。
B、指令形式:[SFTL/SFTLP]
[SFTL Mn Yn Kn1 Kn2] SFTL是位左移指令;Mn需要移位的软元件;Yn需要被移位的软元件;Kn1指定Yn具有几位长度;Kn2指定Mn每次移位几位长度。SFTL是正常的位左移指令;SFTLP是遇到上升沿才进行位左移的指令。
C、实例:
三、实例
实例描述:用一个开关控制8个灯,每秒亮一个灯从右往左依次亮,然后从左往右再依次亮,不断重复以上循环直至按下按钮。
四、总结
1、移位指令对于依次输出很方便(例如流水灯等程序的实现)。
2、弄清楚组合位中是哪些软元件进行移位动作。
3、组合位的使用看这篇文章什么是组合位?。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)