C LanguageMontaje en línea


Observaciones

El ensamblaje en línea es la práctica de agregar instrucciones de ensamblaje en medio del código fuente de C. Ninguna norma ISO C requiere soporte de montaje en línea. Como no es obligatorio, la sintaxis para el ensamblaje en línea varía de compilador a compilador. Aunque normalmente se admite, hay muy pocas razones para usar el ensamblaje en línea y muchas razones para no hacerlo.

Pros

  1. Rendimiento Al escribir las instrucciones de ensamblaje específicas para una operación, puede lograr un mejor rendimiento que el código de ensamblaje generado por el compilador. Tenga en cuenta que estas ganancias de rendimiento son raras. En la mayoría de los casos, puede lograr mejores ganancias de rendimiento simplemente reorganizando su código C para que el optimizador pueda hacer su trabajo.
  2. Interfaz de hardware El controlador de dispositivo o el código de inicio del procesador pueden necesitar algún código de ensamblaje para acceder a los registros correctos y garantizar que ciertas operaciones se realicen en un orden específico con un retraso específico entre las operaciones.

Contras

  1. No se garantiza que la sintaxis de portabilidad del compilador sea ​​el mismo de un compilador a otro. Si está escribiendo código con ensamblaje en línea que debe ser compatible con compiladores diferentes, use macros de preprocesador ( #ifdef ) para verificar qué compilador se está utilizando. Luego, escriba una sección de ensamblaje en línea por separado para cada compilador compatible.
  2. Portabilidad del procesador No puede escribir un ensamblaje en línea para un procesador x86 y esperar que funcione en un procesador ARM. El ensamblaje en línea está diseñado para ser escrito para un procesador específico o una familia de procesadores. Si tiene el ensamblaje en línea que desea que sea compatible con diferentes procesadores, use macros de preprocesador para verificar en qué procesador se está compilando el código y para seleccionar la sección de código de ensamblaje correspondiente.
  3. Cambios futuros de rendimiento El ensamblaje en línea se puede escribir esperando demoras basadas en una cierta velocidad de reloj del procesador. Si el programa se compila para un procesador con un reloj más rápido, es posible que el código de ensamblaje no funcione como se espera.

Montaje en línea Ejemplos relacionados