Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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