注:EQU 为等值命令
B为寄存器
DATS EQU 30H ;待排序首地址
N EQU 8 ;排序个数
SELSR:
MOV R0,#DATS
MOV R2 #N-1
LOOP:
MOV B,@R0
MOV A,R0
MOV R3,A
INC A
MOV R1,A
MOV A,R2
MOV R4,A
LOOP1:
MOV A,@R1
CLR C
SUBB A,B
JNC LOOP2
MOV B,@R1
MOV A,R1
MOV R3,A
LOOP2:
INC R1
DJNZ R4,LOOP1
MOV A,R3
MOV R1,A
MOV A,@R1 ;交换位置
XCH A,@R0
XCH A,@R1
INC R0
DJNZ R2,LOOP
RET