ORG 0000H
AJMP MAIN
ORG 0010H
MAIN: MOV R0,#20H ;取32个数放50H-60H
DEC R0 ;外循环次数
L0: MOV R1,#50H ;设置数据首地址
MOV R2,#1FH ;内循环次数
L1: MOV A,@R1 ;取前一个数, 从大到小排列
INC R1 ;取后一个数
CLR C ;清进位
SUBB A,@R1 ;相邻两数相减
JC L2 ;前一个数小则转移
JMP L3 ;
L2: DEC R1 ;
MOV A,@R1 ;取前一个数
INC R1 ;取后一个数
XCH A,@R1 ;前一个数小和后一个数交换位置
DEC R1 ;
MOV @R1,A ;
L3: DJNZ R2,L1 ;内循环次数减一
DJNZ R0,L0 ;外循环次数减一
用户39557 2008-3-6 15:10