選擇法排序單片機(jī)匯編語(yǔ)言編程舉例
例:選擇法排序(降序)
N EQU 10
FIR EQU 40H
SORT:
MOV A,#N ;
DEC A
MOV R7,A ;外循環(huán)數(shù)
MOV A,#FIR
MOV R0,A ;數(shù)組首址
NEXT0:
PUSH ACC ;保存本輪第一個(gè)字節(jié)地址
MOV A,R7
MOV R6,A ;內(nèi)循環(huán)數(shù)
MOV A,@R0 ;取第一個(gè)字節(jié)
NEXT1:
INC R0
MOV B,@R0
CJNE A,B,L1 ;第一個(gè)字節(jié)與另一字節(jié)比較
SJMP L2
L1:JC L2 ;大于或等于,不交換
XCH A,@R0 ;小于,交換
DJNZ R6,NEXT1 ;較小的字節(jié)在A中,取下一字節(jié)與它比較。
POP B ;一輪比較結(jié)束
MOV R0,B ;恢復(fù)該輪第一個(gè)字節(jié)的地址
MOV @R0,A ;把該輪最小的數(shù)存放到第一個(gè)字節(jié)
INC R0 ;下一輪的字節(jié)地址
MOV A,R0
DJNZ R7,NEXT0 ;下一輪
RET