移位寄存器指令是可以指定移位寄存器的长度和移位方向的移位指令。其指令格式如图所示。
移位寄存器
说明:(1)移位寄存器指令shrb将data数值移入移位寄存器。梯形图中,en为使能输入端,连接移位脉冲信号,每次使能有效时,整个移位寄存器移动1位。data为数据输入端,连接移入移位寄存器的二进制数值,执行指令时将该位的值移入寄存器。s_bit指定移位寄存器的低位。n指定移位寄存器的长度和移位方向,移位寄存器的大长度为64位,n为正值表示左移位,输入数据(data)移入移位寄存器的低位(s_bit),并移出移位寄存器的高位。移出的数据被放置在溢出内存位(sm1.1)中。n为负值表示右移位,输入数据移入移位寄存器的高位中,并移出低位(s_bit)。移出的数据被放置在溢出内存位(sm1.1)中。
(2)data和s-bit的操作数为i, q, m, sm, t, c, v, s, l 。数据类型为:bool变量。n的操作数为vb, ib, qb, mb, sb, smb, lb, ac, 常量。数据类型为:字节。
(3)使eno = 0的错误条件:0006(间接地址),0091(操作数超出范围),0092(计数区错误)。
(4)移位指令影响特殊内部标志位:sm1.1(为移出的位值设置溢出位)。