根据 http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0056d/Cihcciij.html
,如果我的 ARM 汇编代码需要访问名为 globvar
的 C 全局变量,我应该使用 import
和 load
指令:
AREA globals,CODE,READONLY
EXPORT asmsubroutine
IMPORT globvar
asmsubroutine
LDR r1, =globvar ; read address of globvar into
; r1 from literal pool
LDR r0, [r1]
ADD r0, r0, #2
STR r0, [r1]
MOV pc, lr
END
,但是当我在我的代码中使用它时,会出现错误,如 "bad instruction
import globvar'"`。
我正在使用 armv7-android-gcc 编译器。我也在这个论坛上寻找类似的问题,但没有得到有用的结果,所以有人可以帮助我解决这个问题吗?非常感谢。
最佳答案
使用 EXTERN globvar
而不是 IMPORT globvar
。
关于c - ARM 程序集访问 C 全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20366004/