标题: 51单片机冒泡排序汇编语言子程序 [打印本页]

作者: Kxuan163    时间: 2020-12-24 23:28
标题: 51单片机冒泡排序汇编语言子程序
;;入口:待排序的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



作者: 新乡家电维修    时间: 2020-12-25 10:24
给个赞,好东西必须赞




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1