如何使用分支和链接

时间:2018-07-02 10:21:34

标签: hyperlink arm branch

这是对象转储文件,但我不明白为什么分支和链接总是在手臂模式下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地址不同。

1 个答案:

答案 0 :(得分:2)

我的猜测是:Relocation

您可能使用了已编译的对象(* .o)文件-但最终地址是在链接器中计算的,一旦链接完成的程序,它将被放置在适当的位置。在此之前,使用占位符。