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

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

相应的C代码

r2=r0;

while(r1<r0){

    r1++;
r2=r2-;
r3=;
while(r3<r2){ if(sp[r3]>sp[r3+]){ //交换 }
r3++ } }

汇编代码:

        AREA    EXAMPLE,CODE,READONLY
ENTRY LDR SP,=0X40000000 ;ldr r4,=0x40000000;这才是开头
;SWAP
;ldr r5,[r4];从堆栈取数
;ldr r6,[r4,#] ;str r5,[r4,#];将寄存器里面的数放进堆栈
;str r6,[r4] ;ldr r5,[r4]
;ldr r6,[r4,#] ;R0,R2 INNITAIL MOV R2,R0 LOOP_1 CMP R1,R0;R1是0,R0是N
BGE LOOP_END;如果R1比R0大,结束
ADD R1,R1,#;R1++
SUB R2,R2,#;R2是需要比较的个数
MOV R3,#;R3是下一个循环的下标,初始化
LDR R4,=0X40000000;栈的开头
B LOOP_2 LOOP_2 CMP R3,R2;如果R3比R2大
BGE LOOP_1;结束
ADD R3,R3,#
LDR R5,[R4];将当前的两个数取出来
LDR R6,[R4,#]
ADD R4,R4,#
CMP R5,R6;如果左边比右边的大
BLS LOOP_2
SUB R4,R4,#
STR R5,[R4,#];交换
STR R6,[R4]
ADD R4,R4,#
B LOOP_2 LOOP_END
MOV R2,R0,LSR#; /
MOV R3,#
MUL R1,R2,R3;偏移量
LDR R1,[SP,R1];取中位数 END

最新文章

  1. 微信禁用右上角的分享按钮,WeixinJSBridge API以及隐藏分享的子按钮等菜单项
  2. jcl-over-slf4j log桥接工具简介
  3. iOS 阶段学习第25天笔记(iOS沙盒机制介绍)
  4. POJ 1365 Prime Land(整数拆分)
  5. 芝麻HTTP:Python爬虫入门之正则表达式
  6. ROS(indigo)机器人操作系统学习有趣丰富的Gazebo仿真示例evarobot
  7. Cocos2D遍历场景图(Scene Graph)
  8. VC6中函数点go to definition报告the symbol XXX is undefined
  9. PAT乙级考前总结(三)
  10. Dell Inspiron 620 / Vostro 260 BIOS 开启 AHCI 模式
  11. mysql 单表卡死
  12. c++中static变量有什么用
  13. springBoot基础
  14. BASH 正则表达式和文本处理工具
  15. Influxdb数据压缩
  16. 阿里云ubuntu16.04安装beef
  17. Kafka日志存储原理
  18. BufferedInputStream使用详解
  19. Git的安装和设置
  20. hive的rownumber()的使用

热门文章

  1. 【解题报告】13级个人结业赛(二) ——动(dou)态(bu)规(hui)划(zuo)专场
  2. ACM 五一杭电赛码&quot;BestCoder&quot;杯中国大学生程序设计冠军赛小记
  3. js helper(hsv/hsb转rgb颜色,uuid,金额小写转大写)
  4. BZOJ1015: [JSOI2008]星球大战starwar【并查集】【傻逼题】
  5. BZOJ1227 SDOI2009 虔诚的墓主人【树状数组+组合数】【好题】*
  6. 解决遇到Linux网络配置,从熟悉网络配置文件入手
  7. 船长带你看书——《selenium2 python 自动化测试实战》(2)浏览器操作
  8. php替换 json符号
  9. Tomcat最大连接数问题
  10. 相关TableLayoutPanel分页显示自定义控件