ARM汇编中值滤波实验

其实就是 汇编的排序然后选出中位数

排序写的是最直接的冒泡排序,因为简单.

相应的C代

 

 

汇编代码:

        AREA    EXAMPLE,CODE,READONLY
        ENTRY

        LDR SP,=0X40000000
        

        ;ldr r4,=0x40000000;这才是开头
        ;SWAP
        ;ldr r5,[r4];从堆栈取数
        ;ldr r6,[r4,#4]
        
        ;str r5,[r4,#4];将寄存器里面的数放进堆栈
        ;str r6,[r4]
        
        ;ldr r5,[r4]
        ;ldr r6,[r4,#4]
        
        ;R0,R2 INNITAIL


        MOV R2,R0

LOOP_1    CMP R1,R0;R1是0,R0是N
        BGE LOOP_END;如果R1比R0大,结束
        ADD R1,R1,#1;R1++
        SUB    R2,R2,#1;R2是需要比较的个数
        MOV R3,#0;R3是下一个循环的下标,初始化
        LDR R4,=0X40000000;栈的开头
        B    LOOP_2
        
LOOP_2    CMP    R3,R2;如果R3比R2大
        BGE LOOP_1;结束
        ADD R3,R3,#1
        LDR R5,[R4];将当前的两个数取出来
        LDR R6,[R4,#4]
        ADD R4,R4,#4
        CMP    R5,R6;如果左边比右边的大
        BLS LOOP_2
        SUB R4,R4,#4
        STR R5,[R4,#4];交换
        STR R6,[R4]
        ADD R4,R4,#4
        B LOOP_2
        
LOOP_END
        MOV R2,R0,LSR#1; /2
        MOV R3,#4
        MUL    R1,R2,R3;偏移量
        LDR    R1,[SP,R1];取中位数
        
        
    
        
        END

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值