P#M12.0实际上很少使用,除非要进行跨区域指针,事实上,跨区域指针的应用更多的集中于数据块的寻址中,例如:
LAR1 P#DB1.DBX20.0
T DB[AR1,P#0.0]
而M的跨区域使用一般是:
LAR1 P#M12.0
T M[AR1,P#0.0]
更多的P#M12.0的用法是作为ANY块的使用,即一块数据区域的始终,例如:
P#M12.0 BYTE 10 表示MB12开始的连续10个字节的区域。
而P#M12.0代表的是一个指针,他储存了一个地址,通过地址寄存器,你可以定位到这个指针指向的地址,在这之前,他一无是处。而M12.0是一个地址,他存储了一个0或1的布尔数据。
至于什么情况下使用P#M12.0,前面的例子已经说明了,当需要跨区域寻址的时候或者作为数据区域使用的时候,当然,更多的应用是作为数据区域使用。