間接尋址是指使用地址指針來存取存儲器中的數(shù)據(jù)。使用前,首先將數(shù)據(jù)所在單元的內(nèi)存地址放入地址指針寄存器中,然后根據(jù)此地址存取數(shù)據(jù)。S7-200 CPU中允許使用指針進行間接尋址的元器件有I、Q、V、M、S、T、C。
建立內(nèi)存地址的指針為雙字長度(32位),故可以使用V、L、AC作為地址指針。必須采用雙字傳送指令(MOVD)將內(nèi)存的某個地址移入到指針當(dāng)中,以生成地址指針。指令中的操作數(shù)(內(nèi)存地址)必須使用“&”符號表示內(nèi)存某一位置的地址(長度為32位)。例如:
MOVD &VB200, AC1
表示將VB200在存儲器的32位物理地址值送AC1。VB200是直接地址編號,&為取地址符號。將本指令中&VB200改為&VW200或VD200,指令功能不變。
在使用指針存取數(shù)據(jù)的指令中,操作數(shù)前加有*時表示該操作數(shù)為地址指針。例如:
MOVW *AC1. AC0
表示將AC1作為內(nèi)存地址指針,把以AC1中內(nèi)容為起始地址的內(nèi)存單元的16位數(shù)據(jù)送到累加器AC0中。