Dela via


Infogad assembler (C)

Microsoft-specifik

Med den infogade monteringsenheten kan du bädda in instruktioner för sammansättningsspråk direkt i C-källprogrammen utan extra monterings- och länksteg. Den inbäddade assemblern är inbyggd i kompilatorn – du behöver ingen separat assembler, till exempel Microsoft Macro Assembler (MASM).

Eftersom den inbyggda assemblern inte kräver separata assembler- och länkarsteg är det mer bekvämt än en separat assembler. Infogad sammansättningskod kan använda valfri C-variabel eller funktionsnamn som finns i omfånget, så det är enkelt att integrera den med programmets C-kod. Och eftersom sammansättningskoden kan blandas med C-instruktioner kan den utföra uppgifter som är besvärliga eller omöjliga enbart i C.

Nyckelordet __asm anropar den infogade assemblern och kan visas varhelst en C-instruktion är laglig. Det kan inte visas på egen hand. Den ska följas av en sammansättningsinstruktion, en grupp instruktioner som omges av klammerparenteser, eller åtminstone ett tomt par klammerparenteser. Termen "__asm block" här refererar till instruktioner eller grupper med instruktioner, oavsett om de finns i klammerparenteser eller inte.

Koden nedan är ett enkelt __asm block omgivet av klammerparenteser. (Koden är en anpassad funktionsprologsekvens.)

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

Du kan också placera __asm framför varje monteringsinstruktion:

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

Eftersom nyckelordet __asm är en instruktionsavgränsare kan du också placera sammansättningsinstruktioner på samma rad:

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

Avsluta Microsoft Specifik

Se även

Funktionsattribut