回复:求助32位存储器间接寻址

aabbcc

  • 帖子

    341
  • 精华

    2
  • 被关注

    29

论坛等级:侠圣

注册时间:2007-11-16

黄金 黄金 如何晋级?

发布于 2014-11-04 12:49:38

6楼

展开查看
以下是引用emil128在2014-10-30 16:08:41的发言 >4楼:楼主的程序写的还是很规范的
虽然从实际效果上
P#0.0 = L#0
P#0.1 = L#1
但既然其他地方都规范了,那表示地址的地方还是用P#比较好。

程序的错误也还是有的
1、DB问题
OPN DB 200
L DBB [MD 500]
读到的是DB200.DBB764而不是DB952.DBB764,毕竟只有2个DB寄存器,如果有3个DB参与就要另想办法了。
2、寻址
L MD 300
L MD 600
+D
L P#0.1
-D
T MD 300
这里为什么要减0.1?这样不是反而倒退了
3、偏移量叠加
在加完MD600后,再次循环时之前的MD600并没有减掉,会叠加。
比如第一个偏移5,第二个偏移7,第三个偏移3,结果实际效果是第二次偏移了12,第三次偏移了15
改成这样,加完偏移量去赋值,赋完值再减去偏移量
L MD 300
L MD 600
+D
T MD 300
A DBX [MD 300]
= DIX [MD 400]
L MD 300
L MD 600
-D
L P#0.1
+D
T MD 300
另外对于第三个问题:
在循环程序的开始,程序是:
L DBB [MD 500]
T MD 600 //偏移量

这个里面的偏移量从其他地方得到的,不是累加的.
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54617条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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