满意答案

annie1345
推荐于 2017.11.25

采纳率:54% 等级:11
已帮助:7811人
;-----------------------------------------------------
SORT: ;最简短、高效的排序程序.
MOV B, #2FH ;第一轮排序时,比较2FH次.
S1: MOV R0, #20H ;数据区的起始地址.
CLR PSW.5 ;清除"交换"标志位.
MOV R7, B
S2: MOV A, @R0 ;取前一个数.
INC R0
CLR C
SUBB A, @R0 ;减后一个数,前
S3: JNC S4 ;无借位时,不用交换,转移.
MOV A, @R0 ;取后一个数,准备交换.
DEC R0
XCH A, @R0 ;交换到前一个.
INC R0
XCH A, @R0 ;交换到后一个.
SETB PSW.5 ;设定"交换"标志位.
S4: DJNZ R7, S2 ;继续本轮比较.
JNB PSW.5, ENDS ;如本轮没有进行过交换,可提前结束.
DJNZ B, S1 ;下一轮,比较次数少一次.
ENDS: RET
;-----------------------------------------------------
10分享举报
该博客详细介绍了如何实现一个简单的排序程序,使用了循环和条件判断进行数据比较及交换操作。程序采用减法进行比较,并通过设置交换标志位来判断是否需要进行下一轮排序。在每轮比较中,如果未发生交换则提前结束排序过程。这个排序算法适用于小规模数据的快速整理。
1万+

被折叠的 条评论
为什么被折叠?



