Как работать с веткой и ссылкой - PullRequest
0 голосов
/ 02 июля 2018

Это файл объектного дампа, но я не могу понять, почему ветвь и ссылка всегда 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 голосов
/ 02 июля 2018

Мое предположение будет: Переезд

Возможно, вы использовали файл скомпилированного объекта (* .o) - но конечный адрес вычисляется в компоновщике и будет установлен после того, как готовая программа будет связана. До этого вместо этого используется заполнитель.

...