內嵌組譯工具 (C)
Microsoft 特定的
內嵌組合語言可讓您直接在 C 原始程式中內嵌組合語言指令,而不需要額外的組合和連結步驟。 內嵌組合語言已內建於編譯器 — 您不需要個別的組譯工具,例如 Microsoft Macro Assembler (MASM)。
因為內嵌組合不需要個別的組譯及連結步驟,所以比個別進行組譯方便。 內嵌組合語言程式碼可以使用範圍內的任何 C 變數或函式名稱,因此很容易就能與您程式的 C 程式碼整合。 而且,因為組譯程式碼可以與 C 陳述式混用,因此能夠執行單獨在 C 中相當麻煩或無法執行的工作。
__asm
關鍵字會叫用內嵌組合語言,而且可以出現在 C 陳述式有效的任何地方。 它不可以單獨出現。 後面必須接著組譯碼指令、放在大括號中的指令群組,或至少是一對空的大括號。 這裡的「__asm
區塊」一詞是指任何指令或指令群組,不論是否放在大括號中。
下列程式碼是放在大括號中的簡單 __asm
區塊。 (程式碼是自訂函式初構序列)。
__asm
{
push ebp
mov ebp, esp
sub esp, __LOCAL_SIZE
}
或者,您可以將 __asm
放在每個組譯碼指令前面:
__asm push ebp
__asm mov ebp, esp
__asm sub esp, __LOCAL_SIZE
由於 __asm
關鍵字是陳述式分隔符號,您也可以在同一行上放置組譯碼指令:
__asm push ebp __asm mov ebp, esp __asm sub esp, __LOCAL_SIZE
END Microsoft 特定