打印

6个16位数据如何快速增序排序?(汇编)

[复制链接]
2757|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jacksult|  楼主 | 2008-8-19 14:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
 CBLOCK  60H
    1L  ;1
    1H  ;2
    2L  ;3
    2H  ;4
    3L  ;5
    3H  ;6
    4L  ;7
    4H  ;8
    5L  ;9
    5H  ;10
    6L  ;11
    6H  ;12
 ENDC
   如上所示,1L,1H为第一个数的高8位和低8位

相关帖子

沙发
ayb_ice| | 2008-8-19 16:34 | 只看该作者

不是有什麼冒泡程序嗎

使用特权

评论回复
板凳
mohanwei| | 2008-8-19 17:30 | 只看该作者

小数据量还是冒泡最快。

使用特权

评论回复
地板
天雨粟| | 2008-8-19 20:54 | 只看该作者

是否可以这样?

先用C编写源程序,再编译它,即可得汇编程序,适当修改应该就可以了,未试过,楼主可以试一试,再贴上来共同学习.
unsigned int array[6]={0x1009,0x1211,0x201,0x807,0x605,0x403};

 main(){
    unsigned int temp;
    unsigned char i,j;
    for(i=0;i<5;i++)
        for(j=0;j<5-i;j++)
            if(array[j]>array[j+1]){
                   temp=array[j];
                   array[j]=array[j+1];
                   array[j+1]=temp;
                   }
      while(1);
    }

使用特权

评论回复
5
wacke| | 2008-8-19 21:51 | 只看该作者

一看就知道是作业题。

使用特权

评论回复
6
jacksult|  楼主 | 2008-8-20 09:39 | 只看该作者

呵呵,谢谢大家的指点

  呵呵,谢谢大家的指点
  我不是学生了,已经工作了,忘了说我用的是PIC单片机并且用的是汇编,我怕用C语言写的程序超过单片机的容量,所以用的是汇编,现在遇到的问题就是我上面说的,现在问题是不管是什么排序方法,都要求代码小速度尽量快.我现在写的可以完成了,但是代码达到了70多行,大家好有什么好的方法吗?

使用特权

评论回复
7
gyt| | 2008-8-20 12:09 | 只看该作者

现在还有人为节省几条指令的空间伤脑筋?

不应该啊。

使用特权

评论回复
8
农民讲习所| | 2008-8-20 12:12 | 只看该作者

写入的时候就排序

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

18

主题

57

帖子

0

粉丝