免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 982 | 回复: 0
打印 上一主题 下一主题

blkCpy.s of ARM system-on-chip architecture [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-05-23 14:23 |只看该作者 |倒序浏览
;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


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/27204/showart_702375.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP