【摘要】:只能用V存储器、L存储器或者累加器寄存器作为指针。指针也可以为子程序传递参数。指令的输入操作数应该以“&”符号开头来表明是存储区的地址,而不是其内容将移动到指令的输出操作数(指针)中。当指令中的操作数是指针时,应该在操作数前面加上“*”号。如图4-97所示,输入*AC1指定AC1是一个指针,MOVW指令决定了指针指向的是一个字长的数据。图4-97 指针的使用例如:MOVD&VB200,AC1。其含义是将VB200的地址作为指针存入AC1中。
间接寻址是指用指针来访问存储区数据。指针以双字的形式存储其他存储区的地址。只能用V存储器、L存储器或者累加器寄存器(AC1、AC2、AC3)作为指针。要建立一个指针,必须以双字的形式,将需要间接寻址的存储器地址移动到指针中。指针也可以为子程序传递参数。
S7-200允许指针访问以下存储区:I、Q、V、M、S、AI、AQ、SM、T(仅限于当前值)和C(仅限于当前值)。无法用间接寻址的方式访问位地址,也不能访问HC或者L存储区。
要使用间接寻址,应该用“&”符号加上要访问的存储区地址来建立一个指针。指令的输入操作数应该以“&”符号开头来表明是存储区的地址,而不是其内容将移动到指令的输出操作数(指针)中。
当指令中的操作数是指针时,应该在操作数前面加上“*”号。如图4-97所示,输入*AC1指定AC1是一个指针,MOVW指令决定了指针指向的是一个字长的数据。在本例中,存储在VB200和VB201中。(www.daowen.com)
图4-97 指针的使用
例如:MOVD&VB200,AC1。其含义是将VB200的地址(VB200的起始地址)作为指针存入AC1中。MOVW*AC1,AC0。其含义是将AC1指向的字送到AC0中去。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。