| 
	FC的输入数据IN(DWord)是要移位的双字,Bit_No(Int)是移位位数。输出数据OUT(DWord)是移位的结果。本文以输入IN的低20位数据连续循环移位1~20位为例。Tmp1和Tmp2分别用来暂存移位后的数据和移位次数剩余值。L1.4是Tmp1(LD0)的第20位。 
	    将L1.4改为LD0的其他位,可以改变要移位数据的位数。例如改为L2.4时,被移位数据的位数为12位。 
	      L     #IN 
	      T     #Tmp1                       //保存被移位的双字 
	      L     #Bit_No 
	BACK: T     #Tmp2                       //保存移位次数剩余值 
	      L     1 
	      L     #Tmp1 
	      RLD                               //循环移位1位 
	      T     #Tmp1 
	      A     L      1.4 
	      S     L      3.0                  // Tmp1的第20位为1则将最低位置位 
	      AN    L      1.4 
	      R     L      3.0                  // Tmp1第20位为0则将最低位复位 
	      CLR   
	      =     L      1.4                  //将Tmp1第20位清零 
	      L     #Tmp2                       //取移位次数剩余值 
	      LOOP  BACK                        //减1后非零则返回 
	      L     #Tmp1 
	      T     #OUT                        //输出循环移位的结果 
	      CALL  FC     1 
	       IN    :=MD10 
	       Bit_No:=MW14 
	       OUT  :=MD16 
	    用十六进制格式监控MD10和MD16,移位次数MW14的值最好是4的整倍数,监控比较方便。(责任编辑:admin) | 
