2014-04-14 43 views

回答

0

是的,這是可能的,但如果你需要這樣的功能,你可能不應該使用內聯asm,而應該使用單獨的asm模塊。

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

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

你能回答爲什麼它不應該內聯asm? – user3249055

+0

內聯asm通常應用於簡短的代碼段,其中函數調用將不可能或具有大量開銷。如果你需要宏,這似乎表明你的代碼比這更復雜。當然也有例外,這只是一個通用的指導方針。 – Jester