gcc 基本 asm 支援
使用 gcc 的基本程式集支援具有以下語法:
asm [ volatile ] ( AssemblerInstructions )
其中 AssemblerInstructions
是給定處理器的直接彙編程式碼。volatile 關鍵字是可選的,並且沒有效果,因為 gcc 不會優化基本 asm 語句中的程式碼。AssemblerInstructions
可以包含多個彙編指令。如果你有一個必須存在於 C 函式之外的 asm 例程,則使用基本的 asm 語句。以下示例來自 GCC 手冊:
/* Note that this code will not compile with -masm=intel */
#define DebugBreak() asm("int $3")
在這個例子中,你可以在程式碼中的其他位置使用 DebugBreak()
,它將執行彙編指令 int $3
。請注意,即使 gcc 不會修改基本 asm 語句中的任何程式碼,優化器仍然可以移動連續的 asm 語句。如果你有多個必須按特定順序發生的彙編指令,請將它們包含在一個 asm 語句中。