假设我有一个从asm源创建的目标文件(elf文件):
.text
.code 32
MOV R1, #10
LDR R2, [R1]
.string "hello world"
fun1:
MOV R1, #1
LDR R2, =_symbol1
LDR R3, =_symbol2
b _reset
.end
运行arm-elf-nm给了我符号:
U _reset
U _symbol1
U _symbol2
t fun1
因此用于将一些地址加载到寄存器的3个符号是未定义的。现在让我们使用arm-elf-objcopy制作一个二进制文件。我假设二进制文件包含普通位,没有任何重定位。
我的问题是:如果未定义,_symbol1和_symbol2会被替换为0吗?另一方面,如果他们被定义,
.equ _symbol1 0x400
.equ _symbol2 0x500
他们会被这些价值取代吗?