__asm__ __volatile__("Instruction List" : Output : Input : Clobber/Modify);
\n 或 ; 分隔,每指令雙引號包裹。空指令列表可作內存屏障:__asm__("" ::: "memory")。"=constraint"(var)。例:讀協處理器 mrc p15, 0, %0, c1, c0, 0 → "=r"(value)。"constraint"(var)。例:寫協處理器 mcr p15, 0, %0, c1, c0, 0 → "r"(value)。"R0")。"memory" 表示內存已改,強制後續重新加載。mrs %0, cpsr; orr %1, %0, #0x80; msr cpsr_c, %1#define barrier() __asm__ __volatile__("" ::: "memory"),保證順序一致性。r:通用寄存器;m:內存;+:輸入輸出雙向;=:僅輸出。
掌握 GCC 內嵌匯編語法與約束,是編寫高性能、底層系統代碼的關鍵技能。