这个程序的值是多少。
刘玉蓉
发布于2014-11-19 17:28
69
0
标签:
假设L P##IN_DRY_ADDRESS的值是P#260,那么它经过移动后的值是多少。麻烦您写详细点,理解能力有限。
L P##IN_DRY_ADDRESS
LARI
L 1
SLD 4
+AR1
L D[AR1,P#0.0]
SRD 3
T #ST_DRY_ADDRESS _WORD
问题补充:
还是没有搞清楚,能不能在每个指令后面注释下!
佳答案
L P##IN_DRY_ADDRESS //装载指针地址#IN_DRY_ADDRESS
LARI //装载到地址寄存器1里面
L 1 //装载1到ACCU1里
SLD 4 //左移动4位,相当于乘以16 所以是16
+AR1 // 这个时候AR1的值为:262
L D[AR1,P#0.0] //DBD262的值
SRD 3 //右移动3位相当于除以8
T #ST_DRY_ADDRESS _WORD //DBD262的值除以8
首先要了解每一条指令的作用,然后下载一个有关指针寻址的资料看看,资料连接(我也常看这个资料):《S7-300和S7-400寻址》https://www.ad.siemens.com.cn/download/docMessage.aspx?ID=1597&loginID=&srno=&sendtime=