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