满意答案
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分享举报