8051单片机,汇编实现的冒泡排序

ORG 0000H 
MOV 50H,#02H
MOV 51H,#10H
MOV 52H,#24H
MOV 53H,#14H
MOV 54H,#11H
MOV 55H,#36H
MOV 56H,#30H
MOV 57H,#25H
MOV 58H,#22H
MOV 59H,#26H  

/*将 02H、10H、24H、14H、11H、36H、30H、25H、22H、26H 分别寄存排序*/

LJMP MAIN
ORG 0030H                 

MAIN:  MOV R1,#50H           
       MOV R2,#09H
       MOV B,#09H       
       CLR 40H
       LCALL LOOP1
LOOP4: MOV R1,#50H
       MOV A,B
       SUBB A,#01H
       MOV B,A
       MOV R2,B
       CLR 40H   /*将次数减一次后放在B寄存器保存。*/
LOOP1: MOV A,@R1
       INC R1
       MOV 30H,@R1
       CJNE A,30H,LOOP2
LOOP2: JC LOOP3  /*比较前面一个数大于后面的数发生交换*/
       MOV @R1,A
       DEC R1
       MOV @R1,30H
       INC R1
       SETB 40H  /* 实现30H上的数与40H上的数进行交换*/
LOOP3: DJNZ R2,LOOP1
       JB 40H,LOOP4
       SJMP $
       END  

你可能感兴趣的:(51单片机)