-1
我正在运行ARM程序集来初始化数组a。我收到错误说 未定义的引用“a”。我使用GCC编译器 下面是代码ARM程序集错误未定义引用'a'
.text
.global main
main:
ldr r0, addr_of_a // r1 = *a
mov r1, #0 // Index i
loop: str r1, [r0] // a[i] = i
add r0, r0, r0, lsl #2 // Increment address by 4 bytes
add r1, r1, #1 // r1 = r1 + 1
cmp r1, #100
bne loop
end:
mov r0, r1
bx lr
addr_of_a: .word a
那么,_is_'了'定义? (假设它实际上并不是常数0xa) - 你有什么有效的(在C中)'int ** addr_of_a =&a',所以链接器需要知道符号'a'的值(即它的地址),以便在'addr_of_a'处初始化单词。虽然预先的代码似乎认为'addr_of_a'实际上就是数组本身......但并不清楚这里应该发生什么。 – Notlikethat