汇编之配置RORWZI段

    IMPORT    |Image$$RO$$Limit|
    IMPORT    |Image$$RW$$Base|
    IMPORT    |Image$$ZI$$Base|
    IMPORT    |Image$$ZI$$Limit|    


    AREA    ROWZI,CODE,READONLY
    CODE32
    
RORWZI_init    PROC    ;实现初始化
        
        EXPORT    RORWZI_init
        ;暂时不需要拷贝RO段
        ;拷贝RW段
        LDR R0,= |Image$$RO$$Limit|    ;R0存储源RW的起始地址
        LDR R1,= |Image$$RW$$Base|    ;R1存储目的RW的起始地址
        LDR R2,= |Image$$ZI$$Base|        ;R2存储目的RW的终止地址
        LDR R3,= |Image$$ZI$$Limit|        ;R3存储ZI的结束地址,用于知道ZI何时结束初始化

1     
     ;memcpy(R1,R0,R2-R1)
    LDR R4,[R0],#4
    STR R4,[R1],#4            ;copy四个字节
    CMP R1,R2
    BCC %B1
        
        
        MOV R4,#0
        ;拷贝ZI段,清零meeset(R2,(R3-R2))
2
        STRB R4,[R2],#1
        CMP R2,R3
        BCC %B2
        
3        
        ;返回,即结束
        BX LR
    
    
    ENDP
    
    END
 

猜你喜欢

转载自blog.csdn.net/Gaodes/article/details/81749643