首页 理论教育 移位和循环指令在计算机程序设计中的应用

移位和循环指令在计算机程序设计中的应用

时间:2023-06-17 理论教育 版权反馈
【摘要】:STL移位指令将累加器1的低字或全部内容向左或向右逐位移动;循环指令将累加器1的全部内容循环地逐位左移或右移,空出的位用累加器1移出位的信号状态填充。表6-22 移位和循环指令字移位指令移位的范围为0~15,双字移位指令移位的范围为0~31,对于字、双字移位指令,移出的位信号丢失,移空的位使用0补足,例如将一个字左移6位,移位前后位排列次序如图6-20所示。表6-23 移位和循环指令的示例程序

移位和循环指令在计算机程序设计中的应用

LAD移位指令可以将输入参数IN中的内容向左或向右逐位移动;循环指令可以将输入参数IN中的全部内容循环地逐位左移或右移,空出的位用输入IN移出位的信号状态填充。

STL移位指令将累加器1的低字或全部内容向左或向右逐位移动;循环指令将累加器1的全部内容循环地逐位左移或右移,空出的位用累加器1移出位的信号状态填充。移位和循环指令参考表6-22。

6-22 移位和循环指令

978-7-111-28718-6-Chapter06-81.jpg

字移位指令移位的范围为0~15,双字移位指令移位的范围为0~31,对于字、双字移位指令,移出的位信号丢失,移空的位使用0补足,例如将一个字左移6位,移位前后位排列次序如图6-20所示。

978-7-111-28718-6-Chapter06-82.jpg

图6-20 左移6位示意图

带有符合位的整数移位范围为0~15,双整数移位范围为0~31,移位方向只能向右移,移出的位信号丢失,移空的位使用符号位补足,整数为负值,符号位为1,整数为正值,符号位为0。例如将一个整数右移4位,移位前后位排列次序如图6-21所示。

978-7-111-28718-6-Chapter06-83.jpg

图6-21 整数右移4位示意图

使用STL编程时,注意固定的格式,例如一个字左移5位的程序:(www.xing528.com)

978-7-111-28718-6-Chapter06-84.jpg

执行移位指令时,将累加器2中值作为移动的位数,对累加器1中的值进行移位操作。

循环移位指令只能对双字进行操作,移位范围为0~31,如果移位大于32,实际移位为((N-1)modulo 32)+1,高位移出的位信号插入到低位移空的位中,例如将一个双字循环左移3位,移位前后位排列次序如图6-22所示。

978-7-111-28718-6-Chapter06-85.jpg

图6-22 循环移位示意图

STL编程语言中,RLDA与RRDA指令对双字进行循环移位操作,每次触发时循环左移、右移一位,将状态字中CC1的信号插入移空的位上。如果移出的位信号为1,置位状态字中CC1位,可以触发JP程序跳转指令进行逻辑判断。

使用移位和循环指令的示例程序见表6-23。

6-23 移位和循环指令的示例程序

978-7-111-28718-6-Chapter06-86.jpg

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈