您现在所在的是:

西门子SIEMENS

回帖:5个,阅读:3208 [上一页] [1] [下一页]
* 帖子主题:

300里的循环LOOP指令

1027
消失e郎
文章数:54
年度积分:50
历史总积分:1027
注册时间:2006/4/7
发站内信
发表于:2006/6/28 10:08:00
#0楼
题:用语句表设计程序,求MW20——MW40中的数据的累加和。
   L +24
  T MD0
  L +2
  T MD4
  L MW20
  L MW22
  +I
  T MW100      //MW100用于储存加数总和
  L 9          //装入循环次数至累加器低次
yu:T MW10       //将当前循环计数保存在MW10
  L MW[MD0]    //MD0依次为24 26 28 30 32 34 36 38 40
  L MW100      //当前加数总和
  +I
  T MW100
  L MD0        //装入指针
  L MD4        //装入指针地址变化的数
  +I           //指针+2
  T MD0
  L MW10       //取出循环次数至accu1
  LOOP yu      //accu1低字内容减1,若减1后大于0,跳到yu处


程序我是如此编得,可在仿真时,MD0只加至26就停了。程序可能有错误,但我对间接寻址还很陌生,不知道错在哪了。
方法有很多,多多指教!



[此贴子已经被作者于2006-6-28 10:13:13编辑过]
961
bt_love
文章数:39
年度积分:50
历史总积分:961
注册时间:2006/3/17
发站内信
发表于:2006/6/28 18:22:00
#1楼
左移3位啊,在MD0与MD4 中,0,1,2表示bit,要对字寻址,必须确保这3位为0。

换口气,继续潜水。
1027
消失e郎
文章数:54
年度积分:50
历史总积分:1027
注册时间:2006/4/7
发站内信
发表于:2006/6/29 9:53:00
#2楼
你的意思是不是开机时就把MB0、MB1、MB2清零?麻烦直接一点,给个正确的程序好吗?
38107
cvlsam 版主
文章数:12488
年度积分:718
历史总积分:38107
注册时间:2001/12/22
发站内信
2018论坛贡献奖
2017论坛贡献奖
2016论坛贡献奖
2015论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011论坛贡献奖
2011国庆活动
2010论坛杰出贡献奖
发表于:2006/6/29 10:07:00
#3楼
他的意思是左移3位,形成BYTE.BIT的格式,这样就可以对字进行寻址了。也就是说,需要形成24.0的格式,而不是24。详情请参照语句表手册第3-9,3-13所述。
1027
消失e郎
文章数:54
年度积分:50
历史总积分:1027
注册时间:2006/4/7
发站内信
发表于:2006/6/29 10:24:00
#4楼
明白了,多谢
961
bt_love
文章数:39
年度积分:50
历史总积分:961
注册时间:2006/3/17
发站内信
发表于:2006/6/29 10:38:00
#5楼
         L       20
         SLW   3
         LAR1
         L     0
         T     MW100
          L  10
NEXT: T   #TIMES//临时数据
          L    MW100
          L    MW[AR1,P#0.0]
         +I
          T  MW100
          L P#2.0
          +AR1
          L   #TIMES
          LOOP   NEXT







[此贴子已经被作者于2006-6-29 10:41:21编辑过]

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2025 Gkong.com, All Rights Reserved

62.4004