回复:请高手帮忙看一下,哪有里有错误

youhm

  • 帖子

    4924
  • 精华

    81
  • 被关注

    51

论坛等级:至圣

注册时间:2008-06-28

普通 普通 如何晋级?

发布于 2010-06-18 16:17:20

5楼

今天就超出了局部变量的范围这个问题又测试了一下,发现使用寄存器间接寻址L区,如果超出了L区(临时变量)定义范围那么就会出错,如果是绝对地址访问则不会出错
就这个例子
L P##OUT
L AR2 //这时AR2里的地址是V31.0

T LW [AR2,P#0.0] //这一句则是把累加器1发送到LW31(AR2里的地址是V31.0,但W前面加了L,就表示寻址L区,也就是临时变量的区域

如果你把#OUT改成#Temp(就是定义的临时变量,假如是0.0开始)
L P##Temp
L AR2 //这时AR2里的地址是L0.0

T LW [AR2,P#0.0] //这一句则是把累加器1发送到LW0(AR2是L0.0,也就是临时变量开始的一个字,这时W前面的L有和没有都一样了)


评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54759条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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