Omówienie inline Assembler
Programu Microsoft
Asembler inline pozwala Ci na osadzić instrukcje języka asemblera programów źródłowych c i C++ bez dodatkowych czynności montażu i łącza.Asembler wbudowany jest wbudowana w kompilator — nie ma potrzeby oddzielnych assembler takich jak Microsoft Assembler makra (MORGÓW).
Ponieważ assembler wbudowanego nie wymagają oddzielnego zestawu i kroki łącze, jest wygodniejsze niż oddzielne assembler.Kodu zestawu wbudowanego można użyć dowolnej c lub C++ zmiennych lub funkcji nazwy, która jest w zasięgu, dzięki czemu można łatwo zintegrować go z programu kod c i C++.A ponieważ kodu zestawu mogą być mieszane z instrukcji c i C++, można wykonać zadania, które są kłopotliwe lub niemożliwe w c lub C++ samodzielnie.
__Asm słowa kluczowego wywołuje assembler wbudowane i mogą pojawiać się wszędzie tam, gdzie jest legalne instrukcji c lub C++.Nie może ona występować samodzielnie.To musi następować instrukcji montażu grupy ujęte w nawiasy klamrowe, lub co najmniej, instrukcje pustą parę nawiasów klamrowych.Termin "__asm bloku" tutaj odnosi się do żadnych instrukcji ani grupy instrukcje w nawiasy klamrowe.
Poniższy kod jest prosty __asm bloku ujęty w nawiasy klamrowe.(Kod jest sekwencja prolog funkcji niestandardowej).
// 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
}
}
Alternatywnie, można umieścić __asm na początku każdej instrukcji montażu:
__asm push ebp __asm mov ebp, esp __asm sub esp, __LOCAL_SIZE
Ponieważ __asm słowo kluczowe jest separator instrukcji, można również umieścić instrukcje montażu, w tym samym wierszu:
__asm push ebp
__asm mov ebp, esp
__asm sub esp, __LOCAL_SIZE
KONIEC Microsoft szczególne