技术论坛

 回复:使用AR2来,间接寻址,为什么在保存FB块后,被本地静态变量所替换?如何解决?

返回主题列表
作者 主题
只求进步
游侠

经验值:547
发帖数:125
精华帖:2
楼主    2013-10-23 18:15:45
主题:使用AR2来,间接寻址,为什么在保存FB块后,被本地静态变量所替换?如何解决?
如题,假使在程序中建一个STAT变量,
名称为:DATA_STORE ,数据类型为 Array [0..9] Of Int,初始地址为12.0
在程序中这样写: L DIW [AR2,P#12.0]
这时保存一下,就变为 L #DATA_STORE[0]
这样程序就出错了。现在我可以用AR1,替换掉程序可以正常运行,。
但是如果必须用到AR2时,如何在FB中使用AR2,DIX,注意并且是对STAT中的数进行寻址!
我知道在FB中使用AR2,DIX,DI寄存器和地址寄存器AR2均用于系统方的功能块和多重背景的调用。如果想要在多重背景兼容功能块(multi-instance-compatible )中使用AR2,就必须预先存储地址寄存器。但是我不知道如何解决保存后变为本地静态变量#DATA_STORE[0]?
请各位侠帮帮忙啊,好想知道各位大侠是怎么做的。
所有一切只不过是宇宙整体的彰显和表达!
youhm
至圣

经验值:13571
发帖数:4924
精华帖:81
1楼    2013-10-23 19:35:42
精华帖  主题:回复:使用AR2来,间接寻址,为什么在保存FB块后,被本地静态变量所替换?如何解决?
使用AR2里的区域标识
比如
LAR2 P#DIX0.0 保存后会变成接口区第一个变量地址,但没什么影响
L W[AR2,P#12.0] 这样的就不会再变了
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。