LDR r0, =|Image$$RO$$Limit|
LDR r1, =|Image$$RW$$Base|
LDR r3, =|Image$$ZI$$Base|
CMP r0, r1
BEQ %F1
0
CMP r1, r3
LDRCC r2, [r0], #4
STRCC r2, [r1], #4
BCC %B0
1
LDR r1, =|Image$$ZI$$Limit|
MOV r2, #0
2
CMP r3, r1
STRCC r2, [r3], #4
BCC %B2
这段代码有些地方看不明白,请大家帮忙解答:
我的理解是,首先,比较ro-limit和rw-base,如果小于(不可能大于),再比较rw-base和zi-base,如果小于说明存在rw区,此时,把(rw-base - ro-limit)之间的数据复制到rw-base地址起始的区域,然后再零初始化。
我看到书上只是说rw区从ROM到RAM的复制,但是复制的部分为什么是(rw-base - ro-limit)之间的数据?