悬赏求解答问题 点击:677 | 回复:13



纵横军团-我很菜

    
  • 精华:0帖
  • 求助:12帖
  • 帖子:17帖 | 173回
  • 年度积分:52
  • 历史总积分:2846
  • 注册:2017年4月11日
发表于:2014-11-20 16:10:01
楼主
求助帖30分-已结帖

本来是想用FOR循环指令进行5个数大小排序的,不知道可不可行。但是现在发现下面这个问题,为什么*AC2指向的不是vw102里面的数值?










纵横军团-我很菜

  • 精华:0帖
  • 求助:12帖
  • 帖子:17帖 | 173回
  • 年度积分:52
  • 历史总积分:2846
  • 注册:2017年4月11日
发表于:2014-11-20 16:12:04
1楼

如果觉得悬赏少了,可以增加,只是想知道用FOR循环可以排大小么?

纵横军团-我很菜

  • 精华:0帖
  • 求助:12帖
  • 帖子:17帖 | 173回
  • 年度积分:52
  • 历史总积分:2846
  • 注册:2017年4月11日
发表于:2014-11-20 16:26:41
2楼

各位发表下你们的意见啊,求解答啊

纵横军团-我很菜

  • 精华:0帖
  • 求助:12帖
  • 帖子:17帖 | 173回
  • 年度积分:52
  • 历史总积分:2846
  • 注册:2017年4月11日
发表于:2014-11-21 09:04:19
3楼

为什么大家都只是看一下不回答了,多少留下你们的足迹啊!

我爱老衲

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 31回
  • 年度积分:0
  • 历史总积分:4047
  • 注册:2014年8月01日
发表于:2014-11-21 11:25:16
4楼

因为你的AC2并不是一个指针变量值,所以并不能利用AC2来进行间接寻址。

纵横军团-我很菜

  • 精华:0帖
  • 求助:12帖
  • 帖子:17帖 | 173回
  • 年度积分:52
  • 历史总积分:2846
  • 注册:2017年4月11日
发表于:2014-11-21 12:46:50
5楼

回复内容:

对: 我爱老衲 因为你的AC2并不是一个指针变量值,所以并不能利用AC... 内容的回复!


用AC1加2给AC2这样不行么?如果想让AC2变成一个指针变量该怎么写了?

银光人生—华

  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 13597回
  • 年度积分:0
  • 历史总积分:52877
  • 注册:2007年11月23日
发表于:2014-11-21 15:29:36
6楼

以前没有使用过这指令,感觉楼主程序有问题:

下面是帮助文档:

FOR(FOR)指令执行FOR和NEXT之间的指令。您必须指定索引值或当前循环计数(INDX)、起始值(INIT)和结束值(FINAL)。NEXT(NEXT)指令标记FOR循环结束,并将堆栈顶值设为1。使用FOR/NEXT指令描述为指定计数重复的循环。每条FOR指令要求一个NEXT指令。您可以复原FOR/NEXT循环(在FOR/NEXT循环中放置一个FOR/NEXT循环),深度可达八。例如,假定INIT值等于1,FINAL值等于10,FOR与NEXT之间的指令被执行10次,INDX值递增:1、2、3、...10。如果起始值大于结束值,则不执行循环。每次执行FOR和NEXT之间的指令后,INDX值递增,并将结果与结束值比较。如果INDX大于结束值,循环则终止。


银光人生—华

  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 13597回
  • 年度积分:0
  • 历史总积分:52877
  • 注册:2007年11月23日
发表于:2014-11-21 15:32:07
7楼

为什么*AC2指向的不是vw102里面的数值?

至于这个问题要看编程是否正确,你现在的AC2结果是VW100值?

银光人生—华

  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 13597回
  • 年度积分:0
  • 历史总积分:52877
  • 注册:2007年11月23日
发表于:2014-11-21 15:35:27
8楼

参考一下这个程序:


去看下最简单的冒泡法,自己做才是真道理

 //Main主程序 对5个数进行排序从VW4500至Vw4508进行排序,任意多个数可以在SM0.1中初始化;
 Network1
 LD     SM0.1
 MOVW   1, VW2000
 MOVW   1, VW1000
 MOVD   &VB4498, VD3000
 MOVW   700, VW4500
 MOVW   210, VW4502
 MOVW   110, VW4504
 MOVW   510, VW4506
 MOVW   5110, VW4508
 MOVW   1, VW600

 Network2
 LD     M1.0
 CALL   S0:SBR0

 
 //SO:SBR0子程序,采用内外两个For循环及VD1118与VD1008双指针进行排序操作
 Network1
 LD     M1.0
 FOR    VW2000, VW600, 4

 Network2
 LD     M1.0
 FOR    VW1000, VW2000, 3

 Network3
 LD     M1.0
 LPS
 MOVW   VW1000, VW1002
 AENO
 *I     +2, VW1002
 AENO
 ITD    VW1002, VD1004
 LPP
 MOVD   VD1004, VD1114
 +D     +2, VD1114

 Network4
 LD     M1.0
 MOVD   VD3000, VD1008
 +D     VD1004, VD1008
 MOVD   VD3000, VD1118
 +D     VD1114, VD1118

 Network5
 LD     M1.0
 MOVW   *VD1008, VW3500
 MOVW   *VD1118, VW3502

 Network6
 LD     M1.0
 AW>    VW3500, VW3502
 MOVW   *VD1008, VW3004
 MOVW   *VD1118, *VD1008
 MOVW   VW3004, *VD1118

 Network7
 NEXT

 Network8
 NEXT

 


江湖走走--原创军团

  • [版主]
  • 精华:30帖
  • 求助:7帖
  • 帖子:836帖 | 7833回
  • 年度积分:193
  • 历史总积分:46108
  • 注册:2001年2月15日
发表于:2014-11-21 15:43:40
9楼

AC1是VB100的数据,后面是VW200--包括VB200和VB201,然后这样相加,问题是不是在这呢?

我很菜-------

  • 精华:0帖
  • 求助:12帖
  • 帖子:17帖 | 173回
  • 年度积分:52
  • 历史总积分:2846
  • 注册:2017年4月11日
发表于:2014-11-21 16:28:51
10楼

非常感谢各位热心的解答,再一次感谢。

银光人生—华

  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 13597回
  • 年度积分:0
  • 历史总积分:52877
  • 注册:2007年11月23日
发表于:2014-11-21 17:02:16
11楼

引用 我很菜------- 的回复内容: 非常感谢各位热心的解答,再一次感谢。


问题解决没有?

安全督察

  • 精华:9帖
  • 求助:39帖
  • 帖子:920帖 | 7079回
  • 年度积分:0
  • 历史总积分:26180
  • 注册:2005年7月03日
发表于:2014-11-21 21:57:18
12楼

学习了!

我很菜-------

  • 精华:0帖
  • 求助:12帖
  • 帖子:17帖 | 173回
  • 年度积分:52
  • 历史总积分:2846
  • 注册:2017年4月11日
发表于:2014-11-21 22:33:46
13楼

回复内容:

对: 银光人生—华 引用 我很菜------- 的回复内容: 非常感谢各位... 内容的回复!


您讲解的很到位,经过您的讲解弄懂了一部分,我准备再自己试验一下看看自己想的是不是正确的。  希望有不懂的你到时候您还可以指导一下



热门招聘
相关主题

官方公众号

智造工程师