Chinaunix首页 | 论坛 | 博客
  • 博客访问: 501661
  • 博文数量: 174
  • 博客积分: 8001
  • 博客等级: 中将
  • 技术积分: 1840
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-04 19:30
文章分类

全部博文(174)

文章存档

2011年(1)

2010年(24)

2009年(149)

我的朋友

分类: LINUX

2009-04-12 18:51:03

一开始写这个简单的算法还是比较难的,要写好伪代码才能正确。不过认真的组织好逻辑,一切就变得简单了。

    AREA EX, CODE, READONLY
    ENTRY
START
    LDR R0, =NUM
    LDRB R0, [R0]
    LDR R1, =ARRAY
    MOV R2, R0
LOOP1
    SUBS R2, R2, #1
    BEQ STOP
    SUB R3, R0, R2
    SUB R3, R3, #1
    LDRB R4, [R1, R3]
    MOV R5, R3
    ADD R5, R5, #1
LOOP2
    LDRB R6, [R1, R5]
    CMP R4, R6
    STRHIB R4, [R1, R5]
    MOVHI R4, R6
    ADD R5, R5, #1
    CMP R5, R0
    BLO LOOP2
    STRB R4, [R1, R3]
    B LOOP1
STOP
    MOV R0, #0X18
    LDR R1, =0X20026
    SWI 0X123456
SHOW DCB 0

    AREA EXDATA, DATA, READONLY
NUM DCB 20
ARRAY DCB 0, 4, 1, 3, 5, 8, 10, 11, 12, 19
     DCB 12, 14, 14, 15, 16, 15, 20, 21, 11
    END


不过ADS好像不能调试READWRITE节的,所以把数据段改为READONLY,竟然也能够允许STR指令,这样也方便了调试。
阅读(1545) | 评论(0) | 转发(0) |
0

上一篇:汇编语言源文件的编排

下一篇:H.264开篇

给主人留下些什么吧!~~