📄 exp_10_1.asm
字号:
ORG 0000H
LJMP START
ORG 0030H
START: MOV 30H,#00000001B ;
MOV 31H,#00000010B
MOV 32H,#00000100B
MOV 33H,#00001011B
MOV 34H,#00000111B
MOV 35H,#00000011B
MOV 36H,#00010011B
MOV 37H,#00000011B
MOV 38H,#10001011B
MOV 39H,#10001111B
MOV 3AH,#10000010B
MOV 3BH,#10001011B
MOV 3CH,#10000011B
MOV 3DH,#10001011B
MOV 3EH,#10000111B
MOV 3FH,#10100011B
MOV R0,#30H
MOV R1,#40H
MOV R7,#10H
LOOP: MOV A,@R0 ;排序数据存放到40h开始的地址
MOV @R1,A
INC R0
INC R1
DJNZ R7,LOOP
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; 后面数据(21h) 大小关系 前面数据(20h) 借位标志C 是否交换 ;;;
;;; 0******* < 0******** 1 否 ;;;
;;; 0******* > 1******** 1 是 ;;;
;;; 1******* > 1******** 1 是 ;;;
;;; ---------------------------------------------------------------------- ;;;
;;; 0******* > 0******** 0 是 ;;;
;;; 1******* < 0******** 0 否 ;;;
;;; 1******* < 1******** 0 否 ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SORT: MOV R0,#40H
MOV R7,#0FH
CLR 22H.7 ;排序过程中是否有交换标志
_A: MOV A,@R0
MOV 20H,A ;前面数据暂存在20H中
INC R0
MOV A,@R0
MOV 21H,A ;后面数据暂存在21H中
CLR C
CJNE A,20H,NEXT
SJMP UNCHG ;相等
NEXT: JC _B
MOV A,21H
JB ACC.7,UNCHG
JMP CHG
_B: MOV A,20H
JB ACC.7,CHG
JMP UNCHG
CHG: MOV @R0,20H
DEC R0
MOV @R0,21H
INC R0
SETB 22H.7
UNCHG: DJNZ R7,_A
;MOV R0,#40H
JB 22H.7,SORT
SJMP $
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -