ARM汇编中值滤波实验
2016-05-12 19:17
330 查看
其实就是 汇编的排序然后选出中位数
排序写的是最直接的冒泡排序,因为简单.
相应的C代码
汇编代码:
排序写的是最直接的冒泡排序,因为简单.
相应的C代码
r2=r0; while(r1<r0){ r1++; r2=r2-1; r3=0; while(r3<r2){ if(sp[r3]>sp[r3+1]){ //交换 } r3++ } }
汇编代码:
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
相关文章推荐
- 转载:VideoView的使用
- Java API 1.6 帮助文档 中文版
- 顺序表应用1:多余元素删除之移位算法
- 哪些 Python 库让你相见恨晚?
- 详解Gson使用(一)简单对象转化
- 0512 SCRUM团队项目3.0
- JSP内置对象
- F - Piggy-Bank——HOJ 一维DP 装载问题
- Hexo让博客梦变的简单
- html5web通信-跨文档消息传输
- ListView 底部分割线如何显示
- 一个用在手机上的简单js拖拽效果
- git以及github的使用(1)
- 搜索技巧
- 基数排序
- 栈----迷宫(Maze)
- 多个数组求交集 js
- AndroidStudio导入项目一直Building解决方案
- 机测,新一代的三角
- 源码安装xtrabackup