小弟看这篇文档,对这里看不懂,
请各位高手解答:
AI[MD104]//对I1.2进行与逻辑操作,
小弟不明白I1.2从何得来,
我算出的是I1.1
请各位解答一下。
问题补充:
第一张图不对,第二张才是
图片说明:
最佳答案
L L#+10 //以32位形式,把10放入ACC1,此时,ACC2中的内容为:16位整数10
T MD104 //这个值再存入MD104,这是个32位的位存储区域
A I[MD104] //对I1.2进行与逻辑操作!
1、I1.2是如何形成的?
分析一下上述例子中的A I[MD104] 为什么最后是对I1.2进行与逻辑操作。
通过L L#+10 ,我们知道存放在MD104中的值应该是:
MD104:0000 0000 0000 0000 0000 0000 0000 1010
当作为双字指针时,就应该按照3-18bit指定byte,0-2bit指定bit来确定最终指令要操作的地址,因此:
0000 0000 0000 0000 0000 0000 0000 1010 = 1.2
2、再举例描述一下寄存器指针的规定:
其0-2bit,指定bit位,3-18bit指定byte字节。其第31bit固定为0。
0000 0000 0000 0BBB BBBB BBBB BBBB BXXX
这样规定,就意味着的取值只能是:0.0 ——65535.7
例如:当D4(hex)=0000 0000 0000 0000 0000 0000 1101 0100(b),实际上就是等于26.4。
3、相关资料:
见《详解西门子间接寻址.pdf》下载:
http://ishare.iask.sina.com.cn/f/22746895.html
http://www.gongkong365.com/bbs/job.php?action=download&aid=96
提问者对于答案的评价:
OK
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc234331.html