这是对象转储文件,但我不明白为什么分支和链接总是在手臂模式下0xebfffffe
:
7 00000000 <main>:
8 0: e92d4800 push {fp, lr}
9 4: e28db004 add fp, sp, #4
10 8: e24dd008 sub sp, sp, #8
11 c: e3a0300a mov r3, #10
12 10: e50b3008 str r3, [fp, #-8]
13 14: e51b0008 ldr r0, [fp, #-8]
14 18: ebfffffe bl 2c <fib>
15 1c: e50b000c str r0, [fp, #-12]
16 20: e1a00003 mov r0, r3
17 24: e24bd004 sub sp, fp, #4
18 28: e8bd8800 pop {fp, pc}
19
20 0000002c <fib>:
21 2c: e92d4810 push {r4, fp, lr}
22 30: e28db008 add fp, sp, #8
23 34: e24dd014 sub sp, sp, #20
它与参考手册方法计算出的fib地址不同。
答案 0 :(得分:2)
我的猜测是:Relocation
您可能使用了已编译的对象(* .o)文件-但最终地址是在链接器中计算的,一旦链接完成的程序,它将被放置在适当的位置。在此之前,使用占位符。