Udostępnij za pośrednictwem


Asembler wbudowany (C)

Specyficzne dla firmy Microsoft

Wbudowany asembler umożliwia osadzanie instrukcji języka zestawów bezpośrednio w programach źródłowych języka C bez dodatkowych kroków zestawów i linków. Wbudowany asembler jest wbudowany w kompilator — nie potrzebujesz oddzielnego asemblera, takiego jak Microsoft Macro Assembler (MASM).

Ponieważ asembler wbudowany nie wymaga oddzielnych kroków zestawów i łączy, jest wygodniejszy niż oddzielny asemblera. Wbudowany kod zestawu może używać dowolnej zmiennej języka C lub nazwy funkcji, która jest w zakresie, więc łatwo ją zintegrować z kodem C programu. Ponieważ kod zestawu może być mieszany z instrukcjami języka C, może wykonywać zadania, które są kłopotliwe lub niemożliwe w samym języku C.

Słowo __asm kluczowe wywołuje asemblera wbudowanego i może pojawić się wszędzie tam, gdzie instrukcja C jest legalna. Nie może się pojawić samodzielnie. Należy wykonać instrukcję zestawu, grupę instrukcji ujętych w nawiasy klamrowe lub co najmniej pustą parę nawiasów klamrowych. Termin "__asm blok" w tym miejscu odnosi się do dowolnej instrukcji lub grupy instrukcji, niezależnie od tego, czy w nawiasach klamrowych.

Poniższy kod jest prostym __asm blokiem ujętym w nawiasy klamrowe. (Kod jest niestandardową sekwencją prologu funkcji).

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

Alternatywnie można umieścić __asm przed każdą instrukcją zestawu:

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

__asm Ponieważ słowo kluczowe jest separatorem instrukcji instrukcji, można również umieścić instrukcje zestawu w tym samym wierszu:

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

END Microsoft Specific

Zobacz też

Atrybuty funkcji