回复:指针寻址问题

划痕

  • 帖子

    2009
  • 精华

    23
  • 被关注

    16

论坛等级:侠圣

注册时间:2009-08-14

普通 普通 如何晋级?

发布于 2012-05-13 14:31:25

1楼

quote:以下是引用Rampage在2012-05-12 20:09:26的发言:

……
输入 P##IN_Source 为TIME类型的双字DB10.DBD10。
经过 L W#16#10 +AR1 这两条指令后,仿真后在standard一栏中看AR1还是10。为什么不是偏移了两个字节呢。
//仿真监视的AR1区域有2字节的偏移的!
在最后获取数据区域指针中L D [AR1,P#0.0] ,在在standard一栏中看为84000050,为什么不是84000060呢,上述的+AR1这条指令后,AR1中的内容不变化吗?
//如果是84000060那才怪了呢!指针指向DB10.DBD10,即在DB区域偏移10个字节,10=2#1010,在AR1中表示为2#1010000(左移3位,okay?),所以是84000050。
L D [AR1,P#0.0] // Get source memory area address
L #IN_Source_WORD_OFFSET // Load offset
SLD 4
+D
T #TMP_SRC_ADDR // Update source memory area address

最后请教各位大侠带有存储的指针怎么理解更形像呢,如P#M100.0 P#DB10。DBX0.0
//这就是Pointer指针,主要用于区域间的间接寻址。
……


综上所述,建议LZ再熟悉一下有关Pointer指针的基本结构和应用。
No discussion, no outcome.
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54616条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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