Sdílet prostřednictvím


Přehled vloženého assembleru

Specifické pro Microsoft

Inline assembler umožňuje vložit symbolické instrukce v C a C++ zdrojové programy bez nutnosti dodatečných kroků sestavení a odkaz.Inline assembler je součástí kompilátor – nepotřebujete oddělené assembler například Microsoft makro Assembler (MASM).

Protože assembler vložené nevyžaduje samostatné sestavení a odkaz kroky, je pohodlnější než samostatné assembler.Vložený kód sestavení můžete použít jakýkoli C nebo C++ proměnné nebo funkce název, který je v oboru, takže je lze snadno integrovat s C a C++ kódu vašeho programu.A protože kódu sestavení může být smíchán s příkazy jazyka C a C++, provést úkoly, které jsou náročný nebo v C nebo C++ samostatně.

__Asm klíčové slovo vyvolá assembler vložené a může objevit všude, kde je právní prohlášení C nebo C++.Nemůže být použit samostatně.Musí následovat instrukce sestavení, skupina pokynů uzavřená v závorkách, nebo přinejmenším prázdný pár závorek.Pojem „__asm block“ se zde vztahuje na jakoukoli instrukci nebo skupinu instrukcí ve složených závorkách nebo mimo ně.

Následující kód je jednoduchý __asm bloku uzavřeny ve složených závorkách. (Kód je posloupnost vlastní funkce prologu).

// 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
    }
}

Alternativně můžete umístit __asm před každou instrukci sestavení:

__asm push ebp
__asm mov  ebp, esp
__asm sub  esp, __LOCAL_SIZE

Protože __asm prohlášení oddělovač je klíčové slovo, montáž můžete také umístit na stejném řádku:

__asm push ebp   __asm mov  ebp, esp   __asm sub  esp, __LOCAL_SIZE

Specificka produktu Microsoft END

Viz také

Referenční dokumentace

Vložený assembler