间接寻址有些疑惑,来自新手的哀叹

已锁定

爱学习的我

  • 帖子

    42
  • 精华

    0
  • 被关注

    8

论坛等级:侠客

注册时间:2015-01-14

普通 普通 如何晋级?

间接寻址有些疑惑,来自新手的哀叹

1452

9

2017-05-29 17:19:02

展开查看
引用自找答案,问题ID:160913

INPUT是管脚输入,其余为临时变量 NETWORK3 LAR1 P#DBX 0.0 L #INPUT1 SLW 3 +AR1 TAR1 L 0 *I LAR2 L #INPUT2 SLW 3 +AR2 NET WORK 4 L #INPUT3 M001: T #TEPM4 OPN DB[#NUMBER] L DBW[AR1,P#0.0] OPN DB[#TARGET-NUMBER] T DB[AR2,P#0.0] TAR1 SRW 3 L 2 +I SLW 3 LAR1 TAR2 SRW 3 L 2 +I SLW 3 LAR2 L #TEMP4 LOOP M001

提问者:爱学习的我


RENHQ 回答道:

NETWORK3
LAR1     P#DBX 0.0  //把dbx0.0放到ar1(地址寄存器1里面)
L            #INPUT1 //把input1的地址放到acc1(累加器1)
SLW      3 //左移3位形成地址格式
+AR1   //ar1=ar1+acc1
TAR1  // acc1=ar1
L       0  //acc1=0 acc2=acc1=ar1
*I    //acc1=ar1+0
LAR2  //ar2=acc1
L       #INPUT2  //acc1=input2
SLW   3  //左移三位形成地址格式
+AR2   //加到AR2里面
NET WORK 4
L     #INPUT3   //ACC1=input3
M001: T     #TEPM4           //放到tem4里面,是循环次数
OPN     DB[#NUMBER]  //打开db块db【number】
L           DBW[AR1,P#0.0]  //acc1=db[number]。DBW[AR1,P#0.0],ar1的值结合上面
OPN     DB[#TARGET-NUMBER]  //打开db块DB[#TARGET-NUMBER]
T           DB[AR2,P#0.0]  //把db[number]。DBW[AR1,P#0.0]放到DB[#TARGET-NUMBER].DB[AR2,P#0.0]
TAR1  //这里开始
SRW    3  
L          2  
+I    
SLW    3  
LAR1  //到这里是对ar1里面的地址进行便宜计算,ar1偏移2,一个word
TAR2  //这里开始
SRW   3  
L         2  
+I   
SLW   3  
LAR2   //到这里是对ar2里面的地址进行便宜计算,ar2偏移2,一个word,少麻烦点了
L        #TEMP4   //加载循环次数
LOOP  M001   //temp4-1,如果大于0继续循环

还有2人在找答案上回答了该问题,查看全部>

您好,还有些不明白请教以下,
LAR1      P#DBX 0.0  //把dbx0.0放到ar1(地址寄存器1里面)这起什么作用?-------
L        0  //acc1=0 acc2=acc1=ar1
*I     //acc1=ar1+0
LAR2  //ar2=acc1这是把acc1清零然后赋给AR2吗?

间接寻址有些疑惑,来自新手的哀叹 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54759条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。