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 語句中。