Delen via


Inlineassembly (C)

Microsoft-specifieke

Met de inlineassemblyer kunt u instructies in de assemblytaal rechtstreeks in uw C-bronprogramma's insluiten zonder extra assembly- en koppelingsstappen. De inline assembler is ingebouwd in de compiler — u hebt geen aparte assembler zoals de Microsoft Macro Assembler (MASM) nodig.

Omdat voor de inlineassemblage geen afzonderlijke assembly- en koppelingsstappen nodig zijn, is het handiger dan een afzonderlijke assembly. Inline-assemblycode kan elke C-variabele of functienaam gebruiken die binnen het bereik valt, zodat u deze eenvoudig kunt integreren met de C-code van uw programma. En omdat de assemblycode kan worden gemengd met C-instructies, kan het taken uitvoeren die lastig of onmogelijk zijn in C alleen.

Het __asm trefwoord roept de inlineassembly aan en kan worden weergegeven waar een C-instructie legaal is. Het kan niet op zichzelf verschijnen. Het moet worden gevolgd door een montage-instructie, een groep instructies tussen accolades, of op zijn minst een leeg paar accolades. De term '__asm blok' verwijst hier naar een instructie of groep instructies, ongeacht of deze al dan niet in accolades staat.

De onderstaande code is een eenvoudig __asm blok tussen accolades. (De code is een aangepaste functieprologreeks.)

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

U kunt ook voor elke assembly-instructie plaatsen __asm :

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

Omdat het __asm trefwoord een scheidingsteken voor instructies is, kunt u ook assembly-instructies op dezelfde regel plaatsen:

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

Microsoft-specifieke beëindigen

Zie ook

functiekenmerken