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

已锁定

留恋你的气息

  • 帖子

    70
  • 精华

    0
  • 被关注

    4

论坛等级:游士

注册时间:2009-06-15

普通 普通 如何晋级?

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

21784

74

2011-04-04 10:07:01

本文转自廖老师的博客
S7-300/400只有32位的循环移位指令,和32位加CC1的循环移位指令。下面是我编的程序,MD10和MD14组成64位数据,MD10在高32位。
在I0.0的上升沿,分别将MD10和MD14循环左移1位,然后交换它们的最低位M13.0和M17.0的值,就能实现64位数据的循环左移1位。
A I 0.0
FN M 1.0
JCN _001 //不是I0.0的上升沿则跳转
L MD 10
RLD 1 //双字左移一位
T MD 10
L MD 14
RLD 1 //双字左移一位
T MD 14
A M 13.0
= M 1.1 //暂存M13.0
A M 17.0
S M 13.0 //以下程序交换M13.0和M17.0的值
AN M 17.0
R M 13.0
A M 1.1
S M 17.0
AN M 1.1
R M 17.0
_001: NOP 0
此程序已用仿真验证,下图中的修改数值是移位之前MD10和MD14的值,状态值是循环左移4位后的值。
怎样实现64位循环左移?(转) 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54618条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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