STL语言程序问题

L     #ASD
      L     8
      *I    
      LAR1  
      LAR2  P#DBX 4.0

      OPN   DB [#DB_Control]

// set byte counter
      L     16
// copy data
M2_0: T     #L_Counter
      L     DBW [AR2,P#0.0]
      +AR2  P#2.0
      T     PQW [AR1,P#0.0]
      +AR1  P#2.0
      L     #L_Counter
      LOOP  M2_0
请问大家这个程序中在LAR2后面有P#DBX4.0这样的话知道是偏移4.0的地址,那么LAR1后面没有那是偏移多少呢,T PQW[AR1,P#0.0]是传输到PQW多少啊,麻烦大家讲讲啊,谢谢

最佳答案

#ASD*8的值一开就下载到AR1 里头了,所以初始的值是由#ASD决定的,LAR2后面有P#DBX4.0这里就不是偏移量了是给AR2赋值也就是初始值。
    L     #ASD
       L     8
      *I    
      LAR1  
      LAR2  P#DBX 4.0

      OPN   DB [#DB_Control]  

// set byte counter
      L     16                                循环16次
// copy data              这里解释就是复制数据,就是将DBW的数值拷贝到PQW里
M2_0: T     #L_Counter
      L     DBW [AR2,P#0.0]       
      +AR2  P#2.0        字的偏移量,,地址寄存器自加
      T     PQW [AR1,P#0.0]
      +AR1  P#2.0        字的偏移量,,地址寄存器自加
      L     #L_Counter
      LOOP  M2_0       循环跳转

你提出的PQW是多少,是由#ASD决定的,这里是从PQW(#ASD)开始的16个字。

提问者对于答案的评价:
谢谢

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc237903.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月1日 下午5:35
下一篇 2018年12月1日 下午5:35

相关推荐