找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1546|回复: 1
打印 上一主题 下一主题
收起左侧

51单片机冒泡排序汇编语言子程序

[复制链接]
跳转到指定楼层
楼主
ID:858964 发表于 2020-12-24 23:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
;;入口:待排序的N个单字节无符号整数所在的RAM首址存于R3,N存于R4;
;;返回:由小至大排序完毕的N个数据存于原RAM块。
QUE:  MOV   A,   R3
           MOV   R0,   A      ;;R0←RAM首址
           MOV   A,    R4     
           MOV   R7,   A      ;;R7←N
           CLR   PSW.5        ;;交换标志清零,表示未交换数
           MOV   A,    @R0    ;;A←RAM中首个数
LP1:     INC   R0           ;;RAM指针加1
           MOV   R2,   A      ;;送前数于R2暂存
           CLR   C            ;;借位清零
           SUBB  A,    @R0    ;;A←(A)-(C)-((R0))
           MOV   A,   R2     ;;恢复前数于A
           JC    LP2          ;;若有借位,表示后数较大,无须交换,转LP2
           SETB  PSW.5        ;;若无借位,表示前数≧后数,交换标志置1
           XCH   A,    @R0    ;;(A),((R0))交换
           DEC   R0           ;;RAM指针-1
           XCH   A,   @R0    ;;将较小的数冒泡上移
           INC   R0           ;;RAM指针加1
LP2:     MOV   A,   @R0    ;;A←下一个数据
           DJNZ  R7,   LP1    ;;若待比较的数据个数未递减至零,转LP1继续比较
           RET


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:72088 发表于 2020-12-25 10:24 | 只看该作者
给个赞,好东西必须赞
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表