间接寻址是指使用地址指针来存取存储器中的数据。使用前,首先将数据所在单元的内存地址放入地址指针寄存器中,然后根据此地址存取数据。S7-200 CPU中允许使用指针进行间接寻址的元器件有I、Q、V、M、S、T、C。
建立内存地址的指针为双字长度(32位),故可以使用V、L、AC作为地址指针。必须采用双字传送指令(MOVD)将内存的某个地址移入到指针当中,以生成地址指针。指令中的操作数(内存地址)必须使用“&”符号表示内存某一位置的地址(长度为32位)。例如:
MOVD &VB200, AC1
表示将VB200在存储器的32位物理地址值送AC1。VB200是直接地址编号,&为取地址符号。将本指令中&VB200改为&VW200或VD200,指令功能不变。
在使用指针存取数据的指令中,操作数前加有*时表示该操作数为地址指针。例如:
MOVW *AC1. AC0
表示将AC1作为内存地址指针,把以AC1中内容为起始地址的内存单元的16位数据送到累加器AC0中。