;冒泡排序
;十个数从小到大排序
ORG 0000H
MOV 60H,#02H;给60-69H存储单元送初值
MOV 61H,#05H
MOV 62H,#03H
MOV 63H,#07H
MOV 64H,#09H
MOV 65H,#14H
MOV 66H,#13H
MOV 67H,#08H
MOV 68H,#01H
MOV 69H,#12H
MOV R0,#60H
MOV R1,#61H
L2:MOV A,@R0
MOV 50H,@R1
CJNE A,50H,BIG ;比较60H与61H中数值的大小,做减法。如果60中的内容大则C位(进位为)为0如果60中的内容比61中的小C位为1
BIG: JNC LESS;判断C位是0还是1,是0则跳转
LJMP L3
LESS: XCH A,@R1;如果60h中的大 则交换60与61中的内容
XCH A,@R0
L3:INC R1
CJNE R1,#6AH,L2;让62到69中的内容逐一与60中的比较,最后60中的内容就是最小值
INC R0
MOV 51H,R0
MOV R1,51H
INC R1
CJNE R0,#69H,L2;让61中的内容与之后的62到69中的内容比较,61中的内容就为第二小值,以此类推,直到剩最后两个数比较完。
SJMP $
END