发表于:2011/4/10 9:51:28
#0楼
作者已给出了用双字循环左移指令实现8位循环移位、64位循环移位和双字范围内任意位连续循环左移若干位的程序。
下面介绍大于32位的任意位循环左移1位的思路。以64位+N位为例,首先每个双字分别循环左移1位,每个双字的最高位移到它的最低位。然后将每个双字的最低位传送到它左边的双字的最低位(相当于移位前的最高位移到它左边的双字的最低位),将最高的双字的第N+1位(移位前的第N位)传送到最右边的双字的最低位。
如果需要连续左移若干位,可以用循环程序(LOOP)来实现。
下面介绍大于32位的任意位循环左移1位的思路。以64位+N位为例,首先每个双字分别循环左移1位,每个双字的最高位移到它的最低位。然后将每个双字的最低位传送到它左边的双字的最低位(相当于移位前的最高位移到它左边的双字的最低位),将最高的双字的第N+1位(移位前的第N位)传送到最右边的双字的最低位。
我是廖常初,是一个高校的老师,曾在企业从事机械、电气技术工作,长期从事工业控制和PLC应用的教学、科研和工程应用工作。博客中的日志除注明外均为原创。愿意在此与大家探讨工控的问题!
廖常初工控博客地址:http://blog.gkong.com/blog.asp?name=liaochangchu
我曾写过几本小书: 《PLC编程及应用》第3版(S7-200)、《S7-300/400 PLC应用技术》第3版、《FX系列PLC编程及应用》第2版、《S7-200 PLC编程及应用》、《PLC基础及应用》第2版(FX系列大专教材)、《西门子人机界面(触摸屏)组态与应用技术》、《西门子工业通信网络组态编程与故障诊断》、《S7-1200 PLC编程及应用》第2版、《跟我动手学S7-300/400 PLC》、《跟我动手学FX系列PLC》
机械工业出版社廖常初图书专题:http://www.gkong.com/zt/liaochangchu/
廖常初工控博客地址:http://blog.gkong.com/blog.asp?name=liaochangchu
我曾写过几本小书: 《PLC编程及应用》第3版(S7-200)、《S7-300/400 PLC应用技术》第3版、《FX系列PLC编程及应用》第2版、《S7-200 PLC编程及应用》、《PLC基础及应用》第2版(FX系列大专教材)、《西门子人机界面(触摸屏)组态与应用技术》、《西门子工业通信网络组态编程与故障诊断》、《S7-1200 PLC编程及应用》第2版、《跟我动手学S7-300/400 PLC》、《跟我动手学FX系列PLC》
机械工业出版社廖常初图书专题:http://www.gkong.com/zt/liaochangchu/