內嵌組譯工具概觀

Microsoft 專有的

內嵌組譯工具可讓您在沒有額外的組件和連結步驟 c 和 C++ 原始檔程式中內嵌組合語言指令。編譯器內建內嵌組譯工具 — 您不需要個別的組譯工具如 Microsoft 巨集組合語言 (MASM)。

內嵌組譯工具並不需要個別的組件和連結的步驟,因為它是比個別的組譯工具更方便。內嵌組譯程式碼可以使用任何 c 或 C++ 變數或函式名稱會在範圍中,如此便可輕易整合您的程式 c 和 C++ 程式碼。然後,組譯程式碼可以搭配 c 和 C++ 的陳述式,因為其實一點都不會很麻煩甚或 c 或 C++ 單獨的工作。

__Asm 關鍵字會叫用內嵌組譯工具,而且可以出現在 c 或 C++ 的陳述式是合法的任何地方。它不可單獨出現。接下來還必須是組件指示,一群括在括號,或至少,指示對空括號。詞彙"__asm區塊 「 這裡是指任何指令或是否在大括號中的指示,群。

下列程式碼是簡單的__asm的大括號括住的區塊。(程式碼是自訂的函式初構序列)。

// asm_overview.cpp
// processor: x86
void __declspec(naked) main()
{
    // Naked functions must provide their own prolog...
    __asm {
        push ebp
        mov ebp, esp
        sub esp, __LOCAL_SIZE
    }
    
    // ... and epilog
    __asm {
        pop ebp
        ret
    }
}

或者,您可以將__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

結束 Microsoft 特定

請參閱

參考

內嵌組譯工具