例:改进的冒泡排序(单字节)
N EQU 10
FIR EQU 40H
LJMP GO
TABL:DB 12,3,45H,22,6,9,33
DB 23H,43,11 ;数组元素表
GO: MOV DPTR,#TABL
MOV R0,#FIR
MOV R7,#N
EVALU:MOV A,0 ;给工作单元赋值
MOVC A,@A+DPTR
MOV @R0,A
INC R0
INC DPTR
DJNZ R7,VALU
SORT: ;排序
MOV R7,#N -1 ;外循环数
CLR F0 ;清交换标志为0
NEXT0:
MOV A,R7
JZ EXIT ;只一个元素,退出
MOV R6,A ;内循环数
MOV R0,#FIR ;R0指向第一个元素
NEXT1:
MOV A,@R0 ;取一个字节
INC R0
MOV B,@R0
CJNE A,B,L1 ;两个相邻字节比较
SJMP L2 ;相等,不必交换
L1:JC L2 ;前一个小于后一个,符合增序
XCH A,@R0 ;前一个大于后一个,交换
DEC R0
MOV @R0,A
INC R0
SETB F0 ;设置交换标志为1
L2:DJNZ R6,NEXT1 ;内循环是否结束?
JNB F0,EXIT ;无交换,提前结束
DJNZ R7,NEXT0 ;外循环是否结束?
EXIT: RET
设计资源 培训 开发板 精华推荐
- 免费下载|PathWave帮您迎接高速数字设计复杂性的挑战
- 泰克多媒体总线系列专题之三 《USB3.1接口测试》下载有礼
- 【新年活动】2023,兔 do list!
- 有奖直播:ADI在中国能源互联网应用中的技术及产品 1月8日上午10:00-11:30 准时开启!
- “玄铁杯”第三届RISC-V应用创新大赛—国产高性能RISC-V Linux开发板LicheePi 4A报名专场,万元奖金,邀您奔赴开源设计盛宴
- EE大学堂新年游戏之\\
- 【抢楼】正式开始!来抢TI LM3S811评估板吧!!!
- 智能家电解决方案 互联品质生活
- 有奖直播|使用 ModusToolbox® 构建系统,灵活应对物联网设计挑战