求助:关于寄存器寻址的一个疑问 点击:893 | 回复:1



民工

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 317回
  • 年度积分:0
  • 历史总积分:378
  • 注册:2003年12月08日
发表于:2006-11-13 20:56:00
楼主
      LAR1  P##Ausb_SM
      TAR2  
      +AR1  
      A      [AR1,P#1.0]               
      R     L      0.0
      A      [AR1,P#1.1]
      R     L      0.2
      A      [AR1,P#1.2]
      R     L      0.4
      A      [AR1,P#1.3]
      R     L      0.6
      A      [AR1,P#1.4]
      R     L      1.0
      A      [AR1,P#1.5]
      R     L      1.2
      A      [AR1,P#1.6]
      R     L      1.4
      A      [AR1,P#1.7]
      R     L      1.6
                   


这是FB65里面的一段,我比较疑惑的是为什么要把AR2加上AR1?直接用AR1寻址不可以么?哪位高手给指点指点?



民工

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 317回
  • 年度积分:0
  • 历史总积分:378
  • 注册:2003年12月08日
发表于:2006-11-19 11:23:00
1楼
好象是我没说明白吧,这么多天了也没有一个朋友帮忙解答.

这段程序是FB65里头的一部分,FB65是由FB2多次调用的,变量都存在多重背景数据块DB2里面.
LAR1  P##Ausb_SM语句装入AR1的地址是不是该变量的相对地址,比如#Ausb_SM的地址是8.0,而寄存器寻址指令A      [AR1,P#1.0] 需要的是绝对地址,比如第一次调用的时候该地址应该是DB2.DBW8.0,第二次调用FB65的时候#Ausb_SM的绝对地址就应该是DB2.DBW32.0,所以就需要加上AR2.
我现在的疑问是在调用一个功能块的时候AR2里面的数据是保持原先的数据还是自动写入背景数据块的初始地址??

这些都是我看程序时候的猜测,哪位高人给指点指点?

热门招聘
相关主题

官方公众号

智造工程师