首页 理论教育 循环指令与移位指令详解

循环指令与移位指令详解

时间:2023-06-30 理论教育 版权反馈
【摘要】:表5.5-1 循环移位指令的使用要素注意:移位指令是16位或32位操作数,因此操作数为位组合形式时,Kn必须为K4(16位)或K8(32位)。图5.5-2所示为位移位指令的使用说明。图5.5-3b为字元件左移指令的梯形图,其原里与字元件右移指令类似。

循环指令与移位指令详解

1.循环移位指令

不带进位的循环右移、左移指令ROR、ROL的助记符、功能、操作数、程序步如表5.5-1所示。

表5.5-1 循环移位指令的使用要素

978-7-111-45203-4-Chapter05-59.jpg

注意:移位指令是16位或32位操作数,因此操作数为位组合形式时,Kn必须为K4(16位)或K8(32位)。

ROR(ROL)指令基本功能:执行条件成立,[D·]中的位状态循环向右(左)移动n位,即高(低)位→低(高)位→高(低)位,最低(高)位循环移动的同时将状态存入进位标志位M8022中。

ROR指令使用说明如图5.5-1所示,每次X1由OFF变为ON时,各位数据循环移位4次(n=4),最后一次的最低位循环移动的同时将状态存入进位标志位M8022中。

RCR(RCL)指令基本功能:执行条件成立,[D.]中的位状态带上进位标志位状态循环向右(左)移动n位,即高(低)位→低(高)位→进位标志位→高(低)位。

978-7-111-45203-4-Chapter05-60.jpg

图5.5-1 不带进位的循环右移示意图

a)应用程序 b)移位示意

在使用上述指令时,每个扫描周期都会进行一次带进位的循环左移,实际控制中常常要求驱动条件X10由OFF→ON时才进行一次带进位的循环左移。解决的办法是使用后缀(P),改用脉冲方式。RCL指令也可以进行32位操作方式,使用前缀(D)。将上述这条指令改为32位脉冲操作方式时,指令格式为(D)RCL(P)D10K4。

2.位移位指令

位移位指令有位右移位指令SFTR、位左移位指令SFTL,它们的助记符、功能、操作数、程序步如表5.5-2所示。

表5.5-2 非循环移位指令的使用要素

978-7-111-45203-4-Chapter05-61.jpg(www.xing528.com)

SFTR、SFTL位移位指令是对[S·]所指定的n1个位元件连同[D·]所指定的n2个位元件的数据右移或左移n2位。

图5.5-2所示为位移位指令的使用说明。图5.5-2a所示为位右移位指令的梯形图,当X0由OFF变为ON时,[D·]内M0~M15的16位数据中的高4位数据M15~M12连同[S·]内X0~X3的4位数据向右移4位,X0~X3的4位数据从[D·]的高位端移入,而[D·]的低位M0~M3的数据移出(溢出)。若图中n2=1,则每次只进行1位移位。图5.5-2b所示为位左移位指令的梯形图,移位原理与位右移位类似。

978-7-111-45203-4-Chapter05-62.jpg

图5.5-2 位移位指令的使用说明

a)位右移位指令 b)位左移位指令

3.字元件移位指令

字元件右移指令WSFR、字元件左移指令WSFL的助记符、功能、操作数和程序步如表5.5-3所示。字移位时以字为单位向右或向左移位。

表5.5-3 字移位指令的使用要素

978-7-111-45203-4-Chapter05-63.jpg

在WSFR、WSFL指令的功能是对[S·]所指定的n1个字元件连同[D·]所指定的n2个字元件的右移或左移n2个数据。

图5.5-3a所示为字元件右移指令的梯形图。当X0由OFF变为ON时,[D·]内D10~D25的16个数据连同[S·]内D0~D3的4个数据向右移4个字,D0~D3的4个字数据从[D·]的高字端移入,而D10~D13的输据被移出(溢出)。图5.5-3b为字元件左移指令的梯形图,其原里与字元件右移指令类似。

978-7-111-45203-4-Chapter05-64.jpg

图5.5-3 字元件移位指令使用说明

a)右移 b)左移

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈