原创 ARM汇编学习例四

2009-3-22 10:41 3311 3 3 分类: MCU/ 嵌入式

 用汇编实现冒泡排序的例程:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

     AREA Sort,CODE,READONLY
 ENTRY
 
start
     MOV r4,#0
     LDR r6,=src
     ADD r6,r6,#len
 
outer
     LDR r1,=src
 
inner
     LDR r2,[r1]
     LDR r3,[r1,#4]
     CMP r2,r3
     STRGT r3,[r1]
     STRGT r2,[r1,#4]
     ADD r1,r1,#4
     CMP r1,r6
     BLT inner
 
     ADD r4,r4,#4
     CMP r4,#len
     SUBLE r6,r6,#4
     BLE outer
 
stop
     MOV r0,#0x18
     LDR r1,=0x20026
     SWI 0x123456
 
     AREA Array,DATA,READWRITE
src DCD 2,4,10,8,14,1,20
len EQU 7*4
     END
这是一个冒泡排序问题,如果pc值一开始为0x30100058,则r6为74, 经过内循环和外循环得到结果从58开始的为00 01 02 04 08 0a,0e,14,从而衍生出一个00,所以改程序7*4为6*4,因为20前面只有6个字啊,这时得到从58开始的为01 02 04 08 0a,0e,14
PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
3
关闭 站长推荐上一条 /2 下一条