內嵌組譯工具概觀
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 特定