首页 理论教育 数据移位指令:左右移位二进制/十六进制/字【指令详解】

数据移位指令:左右移位二进制/十六进制/字【指令详解】

时间:2023-06-16 理论教育 版权反馈
【摘要】:数据移位指令是用于对存储单元或存储区域以二进制、十六进制或以字为单位进行左/右移位的指令,包括8条指令,如表3-96所示。数据右移后,D中十六进制数中最低位的数据移出,并传送到特殊数据寄存器DT9014的最低4位中,D中的十六进制最高位为0,指令格式及操作数范围如表3-99所示。图3-79 右移指令的执行结果8.F113该指令是将一个数据块中的十六进制数左移一位的指令,就是将首单元D1到末单元D2规定的数据块中十六进制数左移一位。

数据移位指令:左右移位二进制/十六进制/字【指令详解】

数据移位指令是用于对存储单元或存储区域以二进制十六进制或以字为单位进行左/右移位的指令,包括8条指令,如表3-96所示。

表3-96 数据移位指令

978-7-111-46505-8-Chapter03-174.jpg

1.F100(SHR)

该指令是16位二进制数右移n位的指令,能够将D指定的16位二进制数右移n位。数据右移n位后,最后一位移出的数据(位地址为n-1)传送到进位标志继电器R9009中,D中的16位存储单元的最高n位为0,指令格式及操作数范围如表3-97所示。

表3-97 指令格式及操作数范围

978-7-111-46505-8-Chapter03-175.jpg

当触发信号使X0接通时,数据寄存器DT0中的数据被右移6位,数据右移后,位地址5的数据传送到进位标志继电器R9009中,DT0的高6位为0,如图3-73所示。

978-7-111-46505-8-Chapter03-176.jpg

图3-73 n=K6时左移指令的执行结果

2.F101(SHL)

该指令将16位二进制数左移n位的指令,将D指定的16位二进制数左移n位。数据左移n位后,最后一位移出的数据(位地址为16-n)传送到进位标志继电器R9009中,而D中从位地址开始的最低n位为0,指令格式及操作数范围如表3-98所示。

表3-98 指令格式及操作数范围

978-7-111-46505-8-Chapter03-177.jpg

当触发信号使X0接通时,数据寄存器DT0中的数据被左移4位。数据左移后,最后一位移出的数据(位地址为12)传送到进位标志继电器R9009中,DT0的低4位为0,如图3-74所示。

978-7-111-46505-8-Chapter03-178.jpg

图3-74 n=K4时左移指令的执行结果

3.F105(BSR)

该指令是将十六进制数右移一位的指令,就是将D指定的十六进制数右移一位。数据右移后,D中十六进制数中最低位(4位二进制)的数据移出,并传送到特殊数据寄存器DT9014的最低4位中,D中的十六进制最高位(4位二进制)为0,指令格式及操作数范围如表3-99所示。

表3-99 指令格式及操作数范围

978-7-111-46505-8-Chapter03-179.jpg

当触发信号使X0接通时,将DT0中的4位十六进制数右移一位(4位二进制)。数据右移后,十六进制位地址0(二进制0~3位)的数据移出,并传送到特殊数据寄存器DT9014的低4位中,DT0的最高位(二进制12~15位)为0,如图3-75所示。

978-7-111-46505-8-Chapter03-180.jpg

图3-75 右移指令的执行结果

4.F106(BSL)

该指令是将十六进制数左移一位的指令,就是将D指定的十六进制数左移一位。数据左移一位后,D中十六进制数的最高位(4位二进制)的数据移出,并传送到特殊数据寄存器DT9014的最低4位中,D中的最低位(4位二进制)为0,指令格式及操作数范围如表3-100所示。

表3-100 指令格式及操作数范围

978-7-111-46505-8-Chapter03-181.jpg

当触发信号使X0接通时,DT0中的4位十六进制数被左移一位(4位二进制)。数据左移后,DT0中的最高位(二进制12~15位)的数据移出,并传送到特殊数据寄存器DT9014的最低4位中,DT0中的最低位(二进制0~3位)为0,如图3-76所示。

978-7-111-46505-8-Chapter03-182.jpg(www.xing528.com)

图3-76 左移指令的执行结果

5.F110(WSHR)

该指令是将一个数据块(数据存储区域)右移一个字单元的指令,就是将首单元D1和末单元D2规定的数据块右移一个字。数据右移后,首单元D1的数据移出,末单元D2的数据变为0,首单元D1和末单元D2必须为同一类型的操作数,且D1≤D2,指令格式及操作数范围如表3-101所示。

表3-101 指令格式及操作数范围

978-7-111-46505-8-Chapter03-183.jpg

当X0接通时,从数据寄存器DT0到DT3的数据存储区域右移一个字(16位二进制)。数据右移后,首单元DT0中的数据移出,末单元DT3的数据全为0,如图3-77所示。

6.F111(WSHL)

该指令是将一个数据块(数据存储区域)左移一个字的指令,其功能是将首单元D1和末单元D2规定的数据块左移一个字。数据左移后,末单元D2的数据移出,首单元D1的数据变为0,首单元D1和末单元D2必须为同一类型的操作数,且D1≤D2,指令格式及操作数范围如表3-102所示。

978-7-111-46505-8-Chapter03-184.jpg

图3-77 右移指令的执行结果

表3-102 指令格式及操作数范围

978-7-111-46505-8-Chapter03-185.jpg

当触发信号使X0接通时,从DT0到DT3的数据存储区域左移一个字(16位二进制)。数据左移后,末单元DT3中的数据移出,首单元DT0的数据全为0,如图3-78所示。

978-7-111-46505-8-Chapter03-186.jpg

图3-78 左移指令的执行结果

7.F112(WBSR)

该指令是将一个数据块(数据存储区域)中的十六进制数右移一位的指令,将首单元D1到末单元D2规定的数据块中的十六进制数右移一位(4位二进制)。数据右移后,首单元D1中的最低位(4位二进制)数据移出,末单元D2中的最高位(4位二进制)数据变为0,首单元D1和末单元D2必须为同一类型的操作数,而且要求D1≤D2,指令格式及操作数范围如表3-103所示。

表3-103 指令格式及操作数范围

978-7-111-46505-8-Chapter03-187.jpg

当触发信号使X0接通时,从数据寄存器DT0到DT3的数据存储区域中的十六进制数右移一位(4位二进制)。数据右移后,首单元DT0中的最低位(4位二进制)数据移出,末单元DT3中的最高位(4位二进制)数据变为0,如图3-79所示。

978-7-111-46505-8-Chapter03-188.jpg

图3-79 右移指令的执行结果

8.F113(WBSL)

该指令是将一个数据块(数据存储区域)中的十六进制数左移一位的指令,就是将首单元D1到末单元D2规定的数据块中十六进制数左移一位(4位二进制)。数据左移后,末单元D2中的最高位(4位二进制)数据移出,首单元D1中的最低位(4位二进制)数据变为0,首单元D1和末单元D2必须为同一类型的操作数,且D1≤D2,指令格式及操作数范围如表3-104所示。

表3-104 指令格式及操作数范围

978-7-111-46505-8-Chapter03-189.jpg

当触发信号使X0接通时,将从数据寄存器DT0到DT3的数据存储区域中的十六进制数左移一位(4位二进制)。数据左移后,末单元DT3中的最高位(4位二进制)数据移出,首单元DT0中的最低位(4位二进制)数据变为0,如图3-80所示。

978-7-111-46505-8-Chapter03-190.jpg

图3-80 左移指令的执行结果

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

我要反馈