Compartir a través de


Información general en línea de código ensamblador

Específicos de Microsoft

El ensamblador en línea permite incrustar instrucciones en lenguaje de ensamblado en programas de origen de c y C++ sin pasos adicionales del ensamblado y el vínculo.El ensamblador en línea se compila en el compilador — no necesita un ensamblador independiente como Microsoft macro assembler (MASM).

Dado que el código ensamblador en línea no requiere pasos de ensamblado independiente y de vínculo, es más conveniente que un ensamblador independiente.El código de ensamblado en línea puede utilizar cualquier nombre de C o variable o de función de C++ que está en el ámbito, por lo que es fácil integrarlo con el código de C y C++ del programa.Y porque el código de ensamblado se pueden mezclar con las instrucciones de c y C++, puede realizar tareas que son no convenientes o imposibles en C o C++ sólo.

La palabra clave de __asm invoca el ensamblador en línea y puede aparecer en cualquier lugar donde el C. o instrucción de C++ es válido.no puede aparecer en sí mismo.Debe ir seguida de una instrucción de ensamblado, un grupo de instrucciones entre llaves, o, como mínimo, un par vacío de llaves.El término “__asm ” bloque aquí hace referencia a cualquier instrucción o grupo de instrucciones, si entre llaves.

El código siguiente es __asm simple bloqueado que va entre llaves.(El código se es una secuencia personalizada de prólogo de función).

// 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
    }
}

Como alternativa, puede colocar __asm delante de cada instrucción de ensamblado:

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

Puesto que la palabra clave de __asm es un separador de la instrucción, también puede colocar las instrucciones de ensamblado en la misma línea:

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

Específico de Microsoft de FINAL

Vea también

Referencia

Ensamblador en línea