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