找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1848|回復(fù): 1
收起左側(cè)

51單片機(jī)冒泡排序匯編語言子程序

[復(fù)制鏈接]
ID:858964 發(fā)表于 2020-12-24 23:28 | 顯示全部樓層 |閱讀模式
;;入口:待排序的N個(gè)單字節(jié)無符號(hào)整數(shù)所在的RAM首址存于R3,N存于R4;
;;返回:由小至大排序完畢的N個(gè)數(shù)據(jù)存于原RAM塊。
QUE:  MOV   A,   R3
           MOV   R0,   A      ;;R0←RAM首址
           MOV   A,    R4     
           MOV   R7,   A      ;;R7←N
           CLR   PSW.5        ;;交換標(biāo)志清零,表示未交換數(shù)
           MOV   A,    @R0    ;;A←RAM中首個(gè)數(shù)
LP1:     INC   R0           ;;RAM指針加1
           MOV   R2,   A      ;;送前數(shù)于R2暫存
           CLR   C            ;;借位清零
           SUBB  A,    @R0    ;;A←(A)-(C)-((R0))
           MOV   A,   R2     ;;恢復(fù)前數(shù)于A
           JC    LP2          ;;若有借位,表示后數(shù)較大,無須交換,轉(zhuǎn)LP2
           SETB  PSW.5        ;;若無借位,表示前數(shù)≧后數(shù),交換標(biāo)志置1
           XCH   A,    @R0    ;;(A),((R0))交換
           DEC   R0           ;;RAM指針-1
           XCH   A,   @R0    ;;將較小的數(shù)冒泡上移
           INC   R0           ;;RAM指針加1
LP2:     MOV   A,   @R0    ;;A←下一個(gè)數(shù)據(jù)
           DJNZ  R7,   LP1    ;;若待比較的數(shù)據(jù)個(gè)數(shù)未遞減至零,轉(zhuǎn)LP1繼續(xù)比較
           RET


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:72088 發(fā)表于 2020-12-25 10:24 | 顯示全部樓層
給個(gè)贊,好東西必須贊
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表