指針用來指向一個地址。使用這種尋址方式的優(yōu)點在于可以在程序運行過程中實現(xiàn)變址。 指針用于存儲器間接尋址
程序中用于存儲器間接尋址的語句包含一個指令、一個地址標識符、以及一個偏移量(偏移量必須在方括號內給出)。
下面給出一個雙字格式的指針的例子:
L P#8.7 把指針值裝載到累加器1
T I[MD2] 把指針值傳送到MD2
A I[MD2] 查詢I8.7的信號狀態(tài)
= Q[MD2] 給輸出位Q8.7賦值
存儲區(qū)域內部尋址及交叉尋址 :程序中采用這些尋址方式的語句包含一個指令以及下列內容:地址標識符、地址寄存器標識符、偏移量。地址
寄存器(AR1、AR2)及偏移量必須寫在方括號內。
存儲區(qū)域內部尋址例程 :指針不包含指示存儲區(qū)域的信息:
L P#8.7 把指針值裝載到累加器1
LAR1 把指針從累加器1裝載到AR1
A I[AR1,P#0.0] 查詢I8.7的信號狀態(tài)
= Q[AR1,P#1.1] 給輸出位Q10.0賦值
偏移量0.0不起作用。輸出Q10.0 等于8.7 (AR1) 加偏移量1.1。結果是10.0 ,而不是9.8。
存儲區(qū)域交叉尋址例程 :在存儲區(qū)域交叉尋址中,指針中包含指示存儲區(qū)域的信息(例子中為 I 和 Q)。
L P#I8.7 把指針值及存儲區(qū)域標識裝載到累加器1
LAR1 把存儲區(qū)域I 和地址8.7裝載到AR1
L P#Q8.7 把指針值和地址標識符裝載到累加器1
LAR2 把存儲區(qū)域Q和地址8.7裝載到AR2
A [AR1,P#0.0] 查詢輸入位I8.7的信號狀態(tài)
= [AR2,P#1.1] 給輸出位Q10.0賦值
偏移量0.0不起作用。輸出Q10.0 等于8.7 (AR2) 加偏移量1.1。結果是10.0 ,而不是9.8,