回复:求助:数据从小到大的排序

  • 帖子

    0
  • 精华

    3
  • 被关注

    9

论坛等级:新手

注册时间:2008-07-01

普通 普通 如何晋级?

发布于 2012-04-10 21:40:12

9楼

主题:回复:一个冒泡发排序的请教
vw1000,vw1002,vw1004,vw1006四个数按大小排序
2005-11-14 20:00:37
1、最好不要在S7200这种的小PLC中做排序,4个8 个的还好说,40个80个就十分的浪费时间了。
2、待排序的数连续存放,相当于数组。比较从最后一个数开始,最小的数冒上来:
Network 1
// 外循环
LD SM0.0
FOR AC0, 1, 3 // N-1 次
MOVD &VB1006, AC1 // AC1指向第一个比较的数
MOVD AC1, AC2
-D +2, AC2 // AC2指向比较的第二个数

Network 2
// 内循环
LD SM0.0
MOVW +4, LW0 // Temp1为临时变量, N=4
-I AC0, LW0
FOR AC3, 1, LW0 // 每次大循环后减1次

Network 3
LDW< *AC1, *AC2 // 第二个数比较大,则交换
MOVW *AC1, LW2 // Temp2为临时变量
MOVW *AC2, *AC1
MOVW LW2, *AC1

Network 4
LD SM0.0
-D 2, AC1
-D 2, AC2 // 指向下一组

Network 5
NEXT

Network 6
NEXT

Y版,上面的程序,我先在VW1000,VW1002,VW1004,VW1006赋了值,然后试了一下,怎么得不到正确的结果啊?不排序啊。不知您验证的怎么样,还是我试的不对。
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33295条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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