今天看到一个32位地址指针寻址的程序,见下面;
L 4
SLD 3
T MD 20 // MD20 =P#4.0,为什么不是32?
L P#20.0
T MD 24 // MD24=P#20.0
L 320
T MD28 //MD28=P#40.0,为什么不是320?
问题补充:
愿我能:
那我不说是32位指针寻址,只是下面的程序:
L 4
SLD 3
T MD 20
L 320
T MD28
1、如果遇到MD20 或者 MD28 当做P指针寻址,那MD20=P#4.0;MD28=P#40.0;
2、如果只是当做装载数据传送数据,MD没有被当做P指针,那它们中的数据就是MD20=32;MD28=320;
这样可以理解吗?
最佳答案
MD20=P#4.0,其实就是32。MD28=P#40.0,其实就是320。,对于32位指针而言,第0位到第2位表示寻址的位,第3位到第18位表示寻址的字节。例如十进制数4左移3位就是32,对应二进制就是00000000000000000000000000100000,第0-2位表示位寻址,就是0,第三位到第18位是000000000000010,就是4,因此就是P#4.0。参考以下链接:
http://www.ad.siemens.com.cn/service/answer/solution.aspx?q_id=53875&cid=1029
补充说明:你的理解是正确的。
提问者对于答案的评价:
谢谢,两位高手愿我能和Simba2015指点;
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc181817.html

微信扫一扫
支付宝扫一扫