📄 sort_s1.asm
字号:
org 0000h
jmp 40h
org 40h
mov r7,#3
mov r0,#40h
;***********************************************************************************
;子程序:SORT_S
;功能:实现双字节无符号数据块排序(增序)
;入口条件:数据块的首址在R0中,字节数在R7中
;出口信息:完成排序(增序)
;说明:SORT代表排序,S代表双字节
;***********************************************************************************
SORT_S:
dec r7
mov a,r7
mov r3,a ;r3保存外层循环比较次数
mov a,r0
mov r1,a ;R1存放R0值,比较的基准位置,便于外层循环的进行
;outloop:mov a,r1
; mov r0,a
CMP1: mov a,@r0
mov r2,a
inc r0
inc r0
subb a,@r0
jnc high1 ;前面的大于后面的
jz equl1 ;高字节相等
jc low1 ;前面的小于后面的 bug
high1: mov a,r2 ;高字节前面的大于后面的,则交换
xch a,@r0
dec r0
dec r0
mov @r0,a ;高字节交换,xiao fang qian
inc r0
mov a,@r0
inc r0
inc r0
xch a,@r0
dec r0
dec r0
mov @r0,a ;低字节xiao fang qan
inc r0 ;程序执行把大树放在后面
djnz r3,CMP1
jmp $
ret
equl1: dec r0 ;高字节相等,需比较低字节
mov a,@r0
mov r2,a
inc r0
inc r0
subb a,@r0
jnc high2
high2: mov a,r2 ;低字节比较时前面的大
xch a,@r0
dec r0
dec r0
mov @r0,a
dec r0
mov a,@r0
mov r2,a
inc r0
inc r0
xch a,@r0
dec r0
dec r0
mov a,r2
mov @r0,a
ret
low1: ret
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -