c - ARM 程序集访问 C 全局变量

标签 c assembly arm

根据 http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0056d/Cihcciij.html ,如果我的 ARM 汇编代码需要访问名为 globvar 的 C 全局变量,我应该使用 importload 指令:

    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 instructionimport globvar'"`。 我正在使用 armv7-android-gcc 编译器。我也在这个论坛上寻找类似的问题,但没有得到有用的结果,所以有人可以帮助我解决这个问题吗?非常感谢。

最佳答案

使用 EXTERN globvar 而不是 IMPORT globvar

关于c - ARM 程序集访问 C 全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20366004/

相关文章:

ios - 无法读取崩溃日志

c - 分配 : error double free with printf and a NULL wchar_t*

delphi - 如何从物理内存中读取数据?

assembly - ARM-Assembly : Arithmetic Shift/Logical Shift

c++ - C++ 和汇编程序之间的 Scanf 函数

assembly - 常量乘法 - imul 或 shl-add-combination

iphone - 如何在 iOS 设备上编译 ARM 汇编文件和 iOS 模拟器使用常规 C 之间进行选择

c - Scanf 不会将用户输入的值分配给变量 | C

c - 开机后如何在android中自动运行可执行文件?

c - 在 C 中打印未赋值的变量