打印

能否给这段代码做个详细描述,这段可以实现COPY吗 ?

[复制链接]
1001|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
playlinus|  楼主 | 2008-9-25 18:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    ;Copy and paste RW data/zero initialized data
    ldr    r0, =|Image$$RO$$Limit| ; Get pointer to ROM data
    ldr    r1, =|Image$$RW$$Base|  ; and RAM copy
    ldr    r3, =|Image$$ZI$$Base|  
    
    ;Zero init base => top of initialised data
    cmp    r0, r1      ; Check that they are different
    beq    %F2
1       
    cmp    r1, r3      ; Copy init data
    ldrcc    r2, [r0], #4    ;--> LDRCC r2, [r0] + ADD r0, r0, #4         
    strcc    r2, [r1], #4    ;--> STRCC r2, [r1] + ADD r1, r1, #4
    bcc    %B1
2       
    ldr    r1, =|Image$$ZI$$Limit| ; Top of zero init segment
    mov    r2, #0
3       
    cmp    r3, r1      ; Zero init
    strcc    r2, [r3], #4
    bcc    %B3

相关帖子

沙发
playlinus|  楼主 | 2008-9-25 18:11 | 只看该作者

我个人觉得只是对ZI的初始化...

请高人指点...

使用特权

评论回复
板凳
luhuaren| | 2008-9-26 07:17 | 只看该作者

RE

这段代码只拷贝了RW段和ZI段
比较RW段的加载域和运行域是否相同,如果相同则不拷贝 ,如果不同则拷贝RW段到运行域

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

102

主题

518

帖子

2

粉丝