这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » 软件与操作系统 » arm中的head.s文件中的LC0编译时在哪赋值的啊??

共3条 1/1 1 跳转至

arm中的head.s文件中的LC0编译时在哪赋值的啊??

高工
2013-04-08 09:37:56     打赏

.text

adr r0,LC0

ldmia r0,{r1, r2, r3, r4, r5, r6, ip, sp}

subs r0,r0, r1 @ calculate the delta offset


这段代码的第一行text,先声明还是代码段。接着使用adr指令获取LC0的地址,并保存到r0,然后把LC0的内容加载到r1-r6,ip,sp等寄存器。通过减法指令subs来计算LC0的地址与LC0编译保存的地址是否一致,如果一致就跳到标号not_relocated处运行;如果不一致就继续运行下面的重定位代码。



288         .type   LC0, #object
289 LC0:        .word   LC0         @ r1
290         .word   __bss_start     @ r2
291         .word   _end            @ r3
292         .word   zreladdr        @ r4
293         .word   _start          @ r5
294         .word   _got_start      @ r6
295         .word   _got_end        @ ip
296         .word   user_stack+4096     @ sp
297 LC1:        .word   reloc_end - reloc_start
298         .size   LC0, . - LC0

289行的.word LC0是在哪赋值的啊??

要是赋值了,该值是多少啊??




关键词: 中的     head.s     文件     编译     在哪     赋值     .wo    

高工
2013-04-08 12:30:40     打赏
2楼

应该是和“.type   LC0, #object”里面的#object有关


专家
2023-04-05 18:38:16     打赏
3楼

学习


共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]