我可以在gcc内联汇编块中使用函数宏吗?

时间:2014-04-14 12:41:52

标签: gcc assembly macros

#define MOV_MACRO(R0,R1)\
{\
    "mov R0, R1 \n\t"\                                                      
}

__asm__ volatile(\
    MOV_MACRO(r4,r5)
    :"r4","r5"\
    );\

是否可以在asm块中使用这样的函数? 如果没有,请提供使用方法。

1 个答案:

答案 0 :(得分:0)

是的,这是可能的,但是如果你需要这样的功能,你可能不应该使用内联asm而是一个单独的asm模块。

#define MOV_MACRO(R0,R1) "mov " #R0 ", " #R1 "\n\t"

void foo()
{
__asm__ volatile(
    MOV_MACRO(r4,r5)
    ::
    :"r4","r5"
    );
}