博客首页 注册 建议与交流 排行榜 加入友情链接
推荐 投诉 搜索: 帮助

JordonWu's Blog

  jordonwu.cublog.cn

关于作者
姓名:
职业:
年龄:
位置:
个性介绍:大部分文章是本人
学习过程中收集于网络上各位
大侠高人的文章,如有侵权请
来信告知,我将会尽快删除。
谢谢!!
|| << >> ||
我的分类


blkCpy.s of ARM system-on-chip architecture
;Copy string from table1 to table2
AREA blkCpy,CODE,READONLY
SWI_ANGEL EQU 0x123456 ;SWI number for Angel semihosting

MACRO
$l Exit ;Angel SWI call to terminate execution
$l MOV r0, #0x18 ;Angel SWIreason_ReportException(0x18)
LDR r1, =0x20026 ;report ADP_Stopped_ApplicationExit
SWI SWI_ANGEL ;ARM semihosting SWI
MEND

MACRO
$l WriteC ;Angel SWI call to output char in [r1]
$l MOV r0, #0x3 ;select Angel SYS_WRITEC function
SWI SWI_ANGEL
MEND

ENTRY ;code entry point
ADR r1, TABLE1 ;r1->TABLE1
ADR r2, TABLE2 ;r2->TABLE2
ADR r3, T1END ;r3->T1END
LOOP1 LDR r4, [r1], #4 ;GET TABLE1 1st WORD
STR r4, [r2], #4 ;COPY INTO TABLE2
CMP r1, r3 ;FINISHED?
BLT LOOP1 ;IF NOT, DO MORE
ADR r1, TABLE2-1 ;r1->TABLE2
MOV r0, #0x3
LOOP2 LDRB r4, [r1,#1]! ;get next byte
CMP r4, #0 ;CHECK FOR TEXT END
SWINE SWI_ANGEL ;IF NOT END, PRINT...
BNE LOOP2 ;.. AND LOOP BACK
Exit ;FINISH
ALIGN
TABLE1 = "This is the right string!", &0a, &0d, 0
T1END
TABLE2 = "This is the wrong string!", 0
END



发表于: 2008-05-23,修改于: 2008-05-23 14:23,已浏览131次,有评论0条 推荐 投诉


网友评论
 发表评论