s7-200地址寻址
林慧玲
发布于2014-03-25 17:19
2
0
标签:
1.地址前面加个*或&,是怎么用的,什么含义?
2.ac1,ac2是什么情况下才会用到的
佳答案
西门子s7-200视频教程下载:连接
https://www.5iplc.com.cn/html/20/t-20.html
在线观看:
https://v.youku.com/v_show/id_xmti0mtm3nzaw.html
https://www.gongkong.tv/detail/1695.htm
建议学习《深入浅出西门子s7-200plc》,下载连接:
https://download.csdn.net/source/1491167
s7-200cne-learning--编程基础,跟学:
https://www.ad.siemens.com.cn/products/as/s7_200/elearning/basic.asp
参考链接:
《我们为什么要学习间接寻址》
https://blog.plcjs.com/blog-16037-9291.html
《直接寻址,间接寻址,存储器寻址是什么意思》
https://www.it8g.com/xitong/201002/34911.htm
看看这个:
ldsm0.0
movd&vb0,ld10建立一个指针。
+dvd1004,ld10指针增加的字节数。
movb*ld10,vb1900把指针里面的起始数据增加到vb1900开始的地址中。
应该改成这样才对
ldsm0.0
movd&vb0,ac0
+dvd1004,ac0
movb*ac0,vb1900
如果vb200=12,执行movb&vb200,ac1,movb*ac1,ac0
后ac0的内容是什么?
答:ac0=12。问题不大。
从这个简单的问题上可以看出来没有什么区别,其实很大的分支的。要知道指针地址和使用指针就有点区别了。
movb&vb200,ac1
movb*ac1,ac0
这两条指令的作用应该是等同于:
movbvb200,ac0
也可以用movd$vb200,ac0。但是如果用movdvb200,ac0这个就是错误。另外movdvd200,ac0这个是正确的。
参考资料:https://www.ad.siemens.com.cn/service/answer/solution.aspx?q_id=90972&cid=1028