回复:怎样实现64位循环左移?(转)

我心依旧555

  • 帖子

    769
  • 精华

    9
  • 被关注

    34

论坛等级:奇侠

注册时间:2009-09-12

普通 普通 如何晋级?

发布于 2011-04-09 13:09:49

23楼

本程序是为了循环移动而特制的,诸多因素未考虑,运行时将一直循环移位。在模拟软件上设定起始的任意位为1就能看到结果,如果总的位数设定值很大,估计得喝杯茶能看到结果

A M 20.0 //这不是启动位
JC s001
L 1 //移位的位数,这里未用
T #bSNum
L 100 //总的位数。根据设定的数据类型设定任意值
T #bNum
L P#M 100.0 //起始地址
LAR1
L #bNum
L 2
-D
TAR1
+D
LAR1
TAR1 #dwAdd
A [AR1,P#0.1]
= M 19.0 //保存移出的位
L 1
T #bTemp
s001: L #bTemp
L #bNum
JCN end2
LAR1 #dwAdd
A [AR1,P#0.0] //移位
= [AR1,P#0.1]
CLR
= [AR1,P#0.0]
SET
= M 20.0
TAR1
L L#1
-D
LAR1
TAR1 #dwAdd
L #bTemp
+ 1
T #bTemp
L #bNum
JC end2
A M 19.0
= [AR1,P#0.1] //装入缓存位
CLR
= M 20.0
end2: NOP 0
一切皆有可能
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54616条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。