| 作者 | 主题 |
|---|---|
|
只求进步 游侠 经验值:547 发帖数:125 精华帖:2 |
楼主
主题:使用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楼
主题:回复:使用AR2来,间接寻址,为什么在保存FB块后,被本地静态变量所替换?如何解决?
使用AR2里的区域标识
比如 LAR2 P#DIX0.0 保存后会变成接口区第一个变量地址,但没什么影响 L W[AR2,P#12.0] 这样的就不会再变了 |