请教:西门子200指针--间接寻址 点击:272 | 回复:4



xxlplc

    
  • 精华:0帖
  • 求助:20帖
  • 帖子:21帖 | 47回
  • 年度积分:0
  • 历史总积分:108
  • 注册:2014年10月10日
发表于:2016-07-29 19:21:15
楼主

想请教大伙,在西门子200中,什么情况下会使用间接寻址,也就是会用到指针?谢谢大伙了哈!能否给个例子。




yuanle

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 10210回
  • 年度积分:2747
  • 历史总积分:48332
  • 注册:2005年4月22日
发表于:2016-07-29 19:38:28
1楼

例如,你要给VB0~VB999赋值从0~999,你会怎么做?

一条条MOV_B x,VBx还是用个循环加上间接寻址一起来?

间接寻址将你的程序简化,没有间接寻址你也一样能完成工作,只是重复代码泛滥而已。

xxlplc

  • 精华:0帖
  • 求助:20帖
  • 帖子:21帖 | 47回
  • 年度积分:0
  • 历史总积分:108
  • 注册:2014年10月10日
发表于:2016-07-30 09:09:38
2楼

谢谢您                       

xxlplc

  • 精华:0帖
  • 求助:20帖
  • 帖子:21帖 | 47回
  • 年度积分:0
  • 历史总积分:108
  • 注册:2014年10月10日
发表于:2016-07-31 08:46:41
3楼

如果能有个实际的例子,这条指令就不会忘记了。

ntplc2017

  • 精华:0帖
  • 求助:0帖
  • 帖子:38帖 | 375回
  • 年度积分:0
  • 历史总积分:685
  • 注册:2018年5月11日
发表于:2018-08-15 10:26:53
4楼

比如做通信校验的时候,需要累计计算前面所有数据的和或CRC,就要对前面每个地址做相应计算,如果直接一个一个写指令计算,如果有256个字节就需要写256个指令,浪费时间,这个时候可以做间接寻址,将256个值循环投入计算,这样每一个计算完之后就把间接地址加1,就跳到下一个地址计算了,这样减少了很大的代码量。



热门招聘
相关主题

官方公众号

智造工程师