⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 数据排序.asm

📁 基于Proteus的51系列单片机设计与仿真
💻 ASM
字号:
      ORG  20H
	MOV 30H,#20H      ;设置排序初值
	MOV 31H,#16H
	MOV 32H,#10H
	MOV 33H,#2AH
	MOV 34H,#29H
	MOV 35H,#06H
	MOV 36H,#1AH
	MOV 37H,#0EH
	MOV 38H,#0ACH
	MOV 39H,#03H
	MOV 40H,#01H
	MOV  R0, #30H	    ;数据区首地址送R0
	MOV  R3, #9H	    ;设置外循环次数在R3中
LP0:CLR  7FH	        ;交换标志位2FH.7清0
	MOV  A, R3	        ;取外循环次数
	MOV  R2, A	        ;设置内循环次数
	MOV  R0,#30H	    ;重新设置数据区首址
    LP1:MOV  20H, @R0	;数据区数据送20H单元中
	MOV  A, @ R0	    ;20H内容送A
	INC  R0		        ;修改地址指针(R0+1)
	MOV  21H, @ R0      ;下一个地址的内容送21H
	CLR  C		        ;Cy清0 
	SUBB A, 21H	        ;前一个单元的内容与下一个单元的内容比较
	JC   LP2            ;CY=1,前者小,程序转移,CY=0,前者大,不转移继续执行
    MOV  @ R0, 20H      ;前、后地址单元的内容互换
	DEC  R0	
	MOV  @ R0, 21H  	
	INC  R0		        ;修改地址指针(R0+1)
	SETB 7FH	        ;置位交换标志位2FH.7为1
LP2:DJNZ R2, LP1	    ;内循环次数R2-1=0?若R2≠0,继续比较,若R2=0,程序结束循环,程序往下执行
	JNB  7FH, LP3	    ;交换标志位2FH.7若为0,则程序转到LP3处结束循环
	DJNZ R3, LP0	    ;外循环次数R3-1=0?若R3≠0,继续比较,若R3=0,程序结束循环,程序往下执行
LP3:SJMP  $		    
	END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -