移位指令都是对无符号数进行的处理,执行时只考虑要移位的存储单元中每一位数字的状态,而不管数字的大小(要么为0,要么为1),本类指令在一个输出点对应多个相对固定状态的情况下有广泛的应用。 1. 位右移SFTR指令 2. 位左移SFTL指令 SFTR,SFTL:连续执行型指令 SFTRP,SFTLP:脉冲执行型指令 位右移SFTR与位左移SFTL指令编程方式如下: SFTRP M0 M20 K16 K4 意思是:当条件成立时,将M3M2M1M0右移到M35M34M33M32M31M30M29M28M27M26M25M24M23M22M21M20中去,每次移4位,低位溢出。 SFTLP M0 M20 K16 K4意思是:当条件成立时,将M3M2M1M0左移到M35M34M33M32M31M30M29M28M27M26M25M24M23M22M21M20中去,每次移4位,高位溢出。 M0:源位元件起始地址,只能是位元件(X,Y,M,S) M20:目标位元件起始地址,只能是位元件(Y,M,S) K16:目标位元件个数,只能是数值 K4:移动的个数,只能是数值 3. 循环左移ROL指令--------连续执行型指令 ROL----------脉冲执行型指令 4. 循环右移ROR-指令--------连续执行型指令 ROR----------脉冲执行型指令 DROL DROR32位 程序格式:LD X0 AND M8013 RORP D0 K1 LDI X0 AND M8013 ROLP D0 K2 D0:16位数据寄存器,当X0=1时D0中数据每秒右移1位;当X0=0时D0中数据每秒左移2位。譬如用于花色彩灯的逐个点亮或相隔n个点亮等等。 |