数据移位指令是用于对存储单元或存储区域以二进制、十六进制或以字为单位进行左/右移位的指令,包括8条指令,如表3-96所示。
表3-96 数据移位指令
1.F100(SHR)
该指令是16位二进制数右移n位的指令,能够将D指定的16位二进制数右移n位。数据右移n位后,最后一位移出的数据(位地址为n-1)传送到进位标志继电器R9009中,D中的16位存储单元的最高n位为0,指令格式及操作数范围如表3-97所示。
表3-97 指令格式及操作数范围
当触发信号使X0接通时,数据寄存器DT0中的数据被右移6位,数据右移后,位地址5的数据传送到进位标志继电器R9009中,DT0的高6位为0,如图3-73所示。
图3-73 n=K6时左移指令的执行结果
2.F101(SHL)
该指令将16位二进制数左移n位的指令,将D指定的16位二进制数左移n位。数据左移n位后,最后一位移出的数据(位地址为16-n)传送到进位标志继电器R9009中,而D中从位地址开始的最低n位为0,指令格式及操作数范围如表3-98所示。
表3-98 指令格式及操作数范围
当触发信号使X0接通时,数据寄存器DT0中的数据被左移4位。数据左移后,最后一位移出的数据(位地址为12)传送到进位标志继电器R9009中,DT0的低4位为0,如图3-74所示。
图3-74 n=K4时左移指令的执行结果
3.F105(BSR)
该指令是将十六进制数右移一位的指令,就是将D指定的十六进制数右移一位。数据右移后,D中十六进制数中最低位(4位二进制)的数据移出,并传送到特殊数据寄存器DT9014的最低4位中,D中的十六进制最高位(4位二进制)为0,指令格式及操作数范围如表3-99所示。
表3-99 指令格式及操作数范围
当触发信号使X0接通时,将DT0中的4位十六进制数右移一位(4位二进制)。数据右移后,十六进制位地址0(二进制0~3位)的数据移出,并传送到特殊数据寄存器DT9014的低4位中,DT0的最高位(二进制12~15位)为0,如图3-75所示。
图3-75 右移指令的执行结果
4.F106(BSL)
该指令是将十六进制数左移一位的指令,就是将D指定的十六进制数左移一位。数据左移一位后,D中十六进制数的最高位(4位二进制)的数据移出,并传送到特殊数据寄存器DT9014的最低4位中,D中的最低位(4位二进制)为0,指令格式及操作数范围如表3-100所示。
表3-100 指令格式及操作数范围
当触发信号使X0接通时,DT0中的4位十六进制数被左移一位(4位二进制)。数据左移后,DT0中的最高位(二进制12~15位)的数据移出,并传送到特殊数据寄存器DT9014的最低4位中,DT0中的最低位(二进制0~3位)为0,如图3-76所示。
(www.xing528.com)
图3-76 左移指令的执行结果
5.F110(WSHR)
该指令是将一个数据块(数据存储区域)右移一个字单元的指令,就是将首单元D1和末单元D2规定的数据块右移一个字。数据右移后,首单元D1的数据移出,末单元D2的数据变为0,首单元D1和末单元D2必须为同一类型的操作数,且D1≤D2,指令格式及操作数范围如表3-101所示。
表3-101 指令格式及操作数范围
当X0接通时,从数据寄存器DT0到DT3的数据存储区域右移一个字(16位二进制)。数据右移后,首单元DT0中的数据移出,末单元DT3的数据全为0,如图3-77所示。
6.F111(WSHL)
该指令是将一个数据块(数据存储区域)左移一个字的指令,其功能是将首单元D1和末单元D2规定的数据块左移一个字。数据左移后,末单元D2的数据移出,首单元D1的数据变为0,首单元D1和末单元D2必须为同一类型的操作数,且D1≤D2,指令格式及操作数范围如表3-102所示。
图3-77 右移指令的执行结果
表3-102 指令格式及操作数范围
当触发信号使X0接通时,从DT0到DT3的数据存储区域左移一个字(16位二进制)。数据左移后,末单元DT3中的数据移出,首单元DT0的数据全为0,如图3-78所示。
图3-78 左移指令的执行结果
7.F112(WBSR)
该指令是将一个数据块(数据存储区域)中的十六进制数右移一位的指令,将首单元D1到末单元D2规定的数据块中的十六进制数右移一位(4位二进制)。数据右移后,首单元D1中的最低位(4位二进制)数据移出,末单元D2中的最高位(4位二进制)数据变为0,首单元D1和末单元D2必须为同一类型的操作数,而且要求D1≤D2,指令格式及操作数范围如表3-103所示。
表3-103 指令格式及操作数范围
当触发信号使X0接通时,从数据寄存器DT0到DT3的数据存储区域中的十六进制数右移一位(4位二进制)。数据右移后,首单元DT0中的最低位(4位二进制)数据移出,末单元DT3中的最高位(4位二进制)数据变为0,如图3-79所示。
图3-79 右移指令的执行结果
8.F113(WBSL)
该指令是将一个数据块(数据存储区域)中的十六进制数左移一位的指令,就是将首单元D1到末单元D2规定的数据块中十六进制数左移一位(4位二进制)。数据左移后,末单元D2中的最高位(4位二进制)数据移出,首单元D1中的最低位(4位二进制)数据变为0,首单元D1和末单元D2必须为同一类型的操作数,且D1≤D2,指令格式及操作数范围如表3-104所示。
表3-104 指令格式及操作数范围
当触发信号使X0接通时,将从数据寄存器DT0到DT3的数据存储区域中的十六进制数左移一位(4位二进制)。数据左移后,末单元DT3中的最高位(4位二进制)数据移出,首单元DT0中的最低位(4位二进制)数据变为0,如图3-80所示。
图3-80 左移指令的执行结果
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。