S7-300间接寻址中的寄存器间接寻址
(1)寄存器间接寻址概述
寄存器间接寻址是通过使用CPU内部集成的两个地址寄存器AR1和AR2存储地址指针来实现的寻址方式,使用时分为内部区域间接寻址和交叉区域寻址两种寻址方式。
AR1,AR2均为32位寄存器,寄存器间接寻址只使用32位指针。对地址寄存器AR操作的相关指令有:
(2)寄存器寻址——内部区域寄存器间接寻址
内部区域寄存器间接寻址指针用于I、Q、M、L和数据块等存储器中的位、字节、字及双字的寻址,与32位存储器的使用方式相同,不同之处在于指针存储的位置不同。内部区域寄存器地址指针格式如下所示:
第0位至第2位作为寻址操作的位地址,第3位至第18位作为寻址操作的字节地址,第19位至第30位没有定义,第31位为内部区域与交叉区域指针标识符,0:内部区域指针,1:外部区域指针。
内部寄存器间接寻址格式:地址存储器标识符 [地址寄存器,P#BYTE.BIT]。
如:MW [AR1,P#4.0]或DIX [AR2,P#0.0]
MW:表示访问的存储器及访问的长度,AR1:表示地址寄存器1,P#4.0为地址偏移量,
例如:
(3)寄存器寻址——交叉区域寄存器间接寻址
交叉区域寄存器寻址与内部区域寄存器寻址相比,地址指针中带有存储器标识符,如I、Q、M等,交叉区域地址指针格式如下:
第0位至第2位作为寻址操作的位地址,第3位至第18位作为寻址操作的字节地址,第24位至第26位为地址标识符,第31位为内部区域与交叉区域指针标识符,0:内部区域指针,1:外部区域指针。