回复:DB区域比较

n次看你的背影

  • 帖子

    2321
  • 精华

    73
  • 被关注

    53

论坛等级:奇侠

注册时间:2008-03-11

普通 普通 如何晋级?

发布于 2015-12-10 19:16:40

3楼

展开查看
以下是引用mao_wq在2015-12-10 15:22:12的发言 >楼主

大家好,请教个问题。我有个共享DB区,我需要在DBW600-DBW800这个区域比较,如果这个区域的任何一个字大于0,我需要DBW1000-1200对应的字+1。比如:DBW704大于0时,DBW1704加。请问,有没有方便的方法解决?

按照“菲戈”大侠的思路写了点代码,楼主可以测试一下。


      OPN   DB   xxx                    //打开数据块xxx

      LAR1  P#0.0                       //初始化地址寄存器 (定义间接寻址的起始地址)

      L     99                             //装载循环次数(100个字-1)

NEXT: T     LW    20                    //将循环次数暂存到临时变量

      L     DBW [AR1,P#600.0]           //装载被比较的数据

      L     0                           //装载0

      >I                                //判断当前的数据是否大于0

      JCN   M001                        //如果不大于0,跳转到M001

      L     DBW [AR1,P#1000.0]          //如果大于0,装载目标数据 

      +     1                           //目标数据+1

      T     DBW [AR1,P#1000.0]          //存储目标数据

M001: +AR1  P#2.0                       //地址寄存器1内容增大2个字节(查询下一个字)

      L     LW    20                    //装载当前的循环次数

      LOOP  NEXT                        //跳转到NEXT标签,循环次数减1至0时,离开循环往下执行


但这里有个漏洞,随着这段代码执行次数的增加,目标数据可能会超出32768溢出。

佛对我说:“你的痛苦来自于你的欲望,没有欲望也就没有痛苦!”
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54616条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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