小编rei*_*ard的帖子

替换内联汇编代码

我必须编写内联汇编代码来执行我集成到硬件中的自定义指令.
根据在实际芯片上找到的硬件,指令的行为会有所不同.我的装配看起来如下:

    asm volatile (
    " instr_generic %1, %2, %0          \n\t"
    : "=r" (c)            
    : "r" (a), "r" (b)       
    : "%g0"                                                   
    );
Run Code Online (Sandbox Code Playgroud)

instr_generic现在,这可以执行加法或减法,具体取决于硬件上的内容.

现在,而不是instr_generic我想写,cust_add或者cust_sub这应该被替换instr_generic.换句话说,它应该在这里看起来像这样

    #define cust_add instr_generic

    ...

    asm volatile (
    " cust_add %1, %2, %0          \n\t"
    : "=r" (c)            
    : "r" (a), "r" (b)       
    : "%g0"                                                   
    );
Run Code Online (Sandbox Code Playgroud)

但我想我不能在这个上下文中使用预处理器替换内联组件是对的吗?有没有其他方法可以轻松地做到这一点?

c assembly inline-assembly c-preprocessor

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

标签 统计

assembly ×1

c ×1

c-preprocessor ×1

inline-assembly ×1