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

📄 sort_d.asm

📁 这是我最近写的一些单片机的简单的模块
💻 ASM
字号:
org 0000h
jmp 40h
org 40h
mov r7,#4
mov r0,#40h 
;***********************************************************************************
;子程序:SORT_D
;功能:实现单字节无符号数据块排序(增序)
;入口条件:数据块的首址在R0中,字节数在R7中
;出口信息:完成排序(增序)
;说明:SORT代表排序,D代表单字节
;***********************************************************************************
SORT_D:dec r7
       mov a,r7
       mov r3,a        ;r3保存外层循环比较次数
       mov a,r0
       mov r1,a        ;R1存放R0值,比较的基准位置,便于外层循环的进行
outloop:mov a,r3
        mov r2,a        ;r2保存内层循环比较次数
        mov a,r1
        mov r0,a        ;R0用于指示内层循环数据中的偏移量
        mov a,@r0        ;取数放于a中
        inc r0           ;以便取下一数用于比较
inloop: mov r4,a         ;暂存a中的值
        subb a,@r0       
        jc next          ;前一个数小于后一个数即有借位就转移
        mov a,r4
        xch a,@r0        ;前一个数大于后一个数就交换
        mov @r1,a
        sjmp next1
next:   mov a,r4
next1:  
        inc r0           ;为了使a继续和再下一个位置的数比较
        djnz r2,inloop   ;内层循环未执行完时跳到inloop处继续执行
        dec r0
        inc r1           ;使比较基准位置的值发生改变
        djnz r3,outloop  ;处层循环未执行完时跳到outloop处继续执行
        jmp $
                         
        
        
        
        
       

⌨️ 快捷键说明

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