C 表達式中的彙編指令 asm 為 gcc 中的關鍵字,asm 表達式為在 C代碼中嵌套彙編指令,該表達式只是單純的替換出彙編代碼,並不對彙編代碼的含義進行解析。 asm 表達式有兩種形式,第二種 asm-qualifiers 包含了 goto 語句。 第一種形式為常見的用法,AssemblerTemplate 和 OutputOperands 必須存在, 其中 Clobbers 存在需要 InputOperands 也出現。 asm asm-qualifiers ( AssemblerTemplate : OutputOperands [ : InputOperands [ : Clobbers ] ]) asm asm-qualifiers ( AssemblerTemplate : : InputOperands : Clobbers : GotoLabels) Qualifiers 的類型 volatile, 避免編譯器的優化 inline, 內斂限定符,最小的體積 goto, 包含跳轉指令 參數 AssemblerTemplate - 彙編指令模板是包含彙編器指令的文字字符串,編輯器替換引用輸入,編譯器不會解析該指令的含義。 OutputOperands - 由 AssemblerTemplate 中的指令修改的C變量的逗號分隔列表,允許使用空列表。 InputOperands - 由 AssemblerTemplate 中的指令讀取的C變量的逗號分隔列表,允許使用空列表。 Clobbers - 用逗號分隔的寄存器列表或由 AssemblerTemplate 修改的值,不能出現在 OutputOperands 和 InputOperands 中被提及,允許使用空列表。 GotoLabels - 當使用asm的goto形式時,此部分包含 AssemblerTemplate ...