STL语言,指针算法

L     DBW [MD 20]         //装载DB1.DBW4。
      L     DBW [MD 24]         //装载DB1.DBW20。
      +I                                  //相加
      L     DIW [MD 28]         //装载DB3.DBW40。
为何MD20会是DBW4
       MD24会是DBW20
       MD28会是DBW40

最佳答案

1、为何MD20会是DBW4?
L     DBW [MD 20]这是双字节寻址的语句,即,MD 20中已存有4.0的地址。 
2、请楼主注意:
楼主给出的程序不完全,肯定有对MD20赋值的语句,就是将4.0的地址送人MD20,例如有这样的指令:
L DW#16#20 //将32位16进制数20存入ACC1
T  MD20 //这个值再存入MD20.。
3、有关双字节寻址的语句:
双字指针是一个32bit的结构,从0-2bit,共三位,按照8进制指示被寻址的位编号,也就是0-7;而从3-18bit,共16位,指示一个从0-65535的数值,这个数值就是被寻址的字节编号。
 例如:当AR=000000D4(hex)=0000 0100 0000 0000 0000 0000 0010 0000(b),实际上就是等于4.0。
4、 MD24会是DBW20? MD28会是DBW40?
道理与上述相同。
5、建议楼主看看:
见《详解西门子间接寻址.pdf》下载:
http://ishare.iask.sina.com.cn/f/3022080.html
详见《step7编程之地址概念详解》连接:
http://www.plc365.com/jishu/57.html

提问者对于答案的评价:
很好,很详细。谢谢

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc244362.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月1日
下一篇 2018年12月1日

相关推荐