作者已给出了用双字循环左移指令实现8位循环移位、64位循环移位和双字范围内任意位连续循环左移若干位的程序。
下面介绍大于32位的任意位循环左移1位的思路。以64位+N位为例,首先每个双字分别循环左移1位,每个双字的最高位移到它的最低位。然后将每个双字的最低位传送到它左边的双字的最低位(相当于移位前的最高位移到它左边的双字的最低位),将最高的双字的第N+1位(移位前的第N位)传送到最右边的双字的最低位。
http://blog.gkong.com/uploadfile4/201141094919825.jpg如果需要连续左移若干位,可以用循环程序(LOOP)来实现。