为何这两段程序代码执行的情况是一样的
刘玉蓉
发布于2014-10-08 17:41
13
0
标签:
为何这两段程序代码执行的情况是一样的
OPN DB 1
L P#DBX 26.7
+AR1
+AR1 P#2.6
A I 0.0
= Q [AR1,P#0.0]
上面的这段代码当I0.0为ture时,Q29.5为ON,
当下面的这段代码执行时产生的效果和上面的一样
OPN DB 1
L P#26.7
+AR1
+AR1 P#2.6
A I 0.0
= Q [AR1,P#0.0]
L P#26.7和 L P#DBX26.7肯定是不一样的,为何产生的效果一样,这样在以后的编程中是不是要特意注意什么,防止出现某种意外
佳答案
这就是32位交叉指针的妙用了
P#DBX26.7 是包含区域的32位地址指针
P#26.7 是不包含区域的32位地址指针
P#DBX26.7
LAR1
我们在使用这个指针时如果不想要指针里的地址区域,那指定区域就可以了,指针里包含的地址区域就无效了
如= Q[AR1,P#0.0] 这样我们指定的地址区域Q就起作用了,AR1里DB就忽略了
如果我们要使用指针里包含的地址区域,也就是要访问DBX26.7,那么
= [AR1,P#0.0] 这里就是使用了AR1里的地址区域DB