常用子程序-61个-4.2M.zip

源代码在线查看: 单字节无符号数据块排序.txt

软件大小: 2547 K
上传用户: rickie936
关键词: 4.2 zip 61 程序
下载地址: 免注册下载 普通下载 VIP

相关代码

				标号: SORT功能:单字节无符号数据块排序(增序)
				
				入口条件:数据块的首址在R0中,字节数在R7中。
				出口信息:完成排序(增序)
				影响资源:PSW、A、R2~R6 堆栈需求: 2字节
				
				SORT: MOV A,R7
					MOV R5,A ;比较次数初始化
				SRT1: CLR F0 ;交换标志初始化
					MOV A,R5 ;取上遍比较次数
					DEC A ;本遍比上遍减少一次
					MOV R5,A ;保存本遍次数
					MOV R2,A ;复制到计数器中
					JZ SRT5 ;若为零,排序结束
					MOV A,R0 ;保存数据指针
					MOV R6,A
				SRT2: MOV A,@R0 ;读取一个数据
					MOV R3,A
					INC R0 ;指向下一个数据
					MOV A,@R0 ;再读取一个数据
					MOV R4,A
					CLR C
					SUBB A,R3 ;比较两个数据的大小
					JNC SRT4 ;顺序正确(增序或相同),不必交换
					SETB F0 ;设立交换标志
					MOV A,R3 ;将两个数据交换位置
					MOV @R0,A
					DEC R0
					MOV A,R4
					MOV @R0,A
					INC R0 ;指向下一个数据
				SRT4: DJNZ R2,SRT2 ;完成本遍的比较次数
					MOV A,R6 ;恢复数据首址
					MOV R0,A
					JB F0,SRT1 ;本遍若进行过交换,则需继续排序
				SRT5: RET ;排序结束
					END
							

相关资源