Partilhar via


Montador em linha (C)

Específico da Microsoft

O assembler em linha permite que você incorpore instruções de linguagem de montagem diretamente em seus programas de código-fonte C sem etapas extras de montagem e link. O assembler embutido é incorporado ao compilador — você não precisa de um assembler separado, como o Microsoft Macro Assembler (MASM).

Como o montador em linha não requer etapas separadas de montagem e ligação, é mais conveniente do que um montador separado. O código de montagem em linha pode usar qualquer variável C ou nome de função que esteja no escopo, por isso é fácil integrá-lo com o código C do seu programa. E como o código de assembly pode ser misturado com instruções C, ele pode executar tarefas que são complicadas ou impossíveis apenas em C.

A __asm palavra-chave invoca o assembler embutido e pode aparecer sempre que uma instrução C for legal. Não pode aparecer por si só. Deve ser seguido por uma instrução de montagem, um grupo de instruções fechado em chaves ou, no mínimo, um par de chaves vazio. O termo "__asm bloco" aqui refere-se a qualquer instrução ou grupo de instruções, com ou sem acólitos.

O código abaixo é um bloco simples __asm fechado em chaves. (O código é uma sequência prolog de função personalizada.)

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

Como alternativa, você pode colocar __asm na frente de cada instrução de montagem:

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

Como a __asm palavra-chave é um separador de instruções, você também pode colocar instruções de montagem na mesma linha:

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

END Específico da Microsoft

Ver também

Atributos de função