小编zsn*_*afu的帖子

#在GCC中内联汇编中定义

我正在尝试在GCC中编写内联汇编,该汇编将#define中的值写入寄存器。

#define SOME_VALUE  0xDEADBEEF

void foo(void)
{
    __asm__("lis r5, SOME_VALUE@ha");
    __asm__("ori r5, r5, SOME_VALUE@l");
}
Run Code Online (Sandbox Code Playgroud)

但是,在编译时出现错误:

未定义对“ SOME_VALUE”的引用

汇编程序是否可以#define在嵌入式汇编中看到它?

我已经通过执行以下操作解决了该问题:

#define SOME_VALUE  0xDEADBEEF
__asm__(".equ SOME_VALUE,   0xDEADBEEF");

void foo(void)
{
    __asm__("lis r5, SOME_VALUE@ha");
    __asm__("ori r5, r5, SOME_VALUE@l");
}
Run Code Online (Sandbox Code Playgroud)

但是,我真的不想重复该值。

c embedded assembly inline

1
推荐指数
1
解决办法
790
查看次数

标签 统计

assembly ×1

c ×1

embedded ×1

inline ×1