Partager via


Présentation d'assembly inline

Spécifique à Microsoft

L'assembly inline vous permet d'inclure l'instruction en langage assembleur dans vos programmes sources C et C++ sans étapes d'assembly et de liaison.L'assembleur inline est généré dans le compilateur - vous n'avez pas besoin d'un assembly distinct tel que le macro-assembleur Microsoft (MASM.

Étant donné que l'assembly inline n'a pas besoin des étapes d'assembly séparé et de lien, il est plus pratique qu'un assembly séparé.Le code assembleur inline peut utiliser tout C ou la variable ou le nom de la fonction C++ qui est dans la portée, il est facile de l'intégrer avec le code C et C++ de votre programme.Étant donné que le code d'assembly peut être combiné avec des instructions C et C++, il peut effectuer les tâches qui sont encombrantes ou impossibles dans seul C ou C++.

Le mot clé de __asm appelle l'assembly inline et peut être autorisé à chaque fois que le c ou l'instruction C++ est conforme.Il ne peut pas apparaître seul.Il doit être suivi par une instruction assembly, un groupe d'instruction placée entre accolades, ou, pour le moins, une paire d'accolades vide.Le terme « bloc d'__asm  » fait référence ici à une instruction ou groupe d'instructions, si accolades.

Le code suivant est un bloc simple d' __asm entre accolades.(Code est une séquence personnalisée du prologue de fonction.)

// asm_overview.cpp
// processor: x86
void __declspec(naked) main()
{
    // Naked functions must provide their own prolog...
    __asm {
        push ebp
        mov ebp, esp
        sub esp, __LOCAL_SIZE
    }
    
    // ... and epilog
    __asm {
        pop ebp
        ret
    }
}

Sinon, vous pouvez mettre __asm devant chaque instruction assembly :

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

Étant donné que le mot clé d' __asm est un séparateur d'instruction, vous pouvez également placer des instructions assembleur sur la même ligne :

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

TERMINEZ le détail de Microsoft

Voir aussi

Référence

Assembleur inline