📄 数据排序.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 + -