Hacemos Envíos a Todo el País

Para cotizaciones y pedidos mándanos un mensaje en este enlace. En Cochabamba visítanos en nuestras oficinas, estamos a tu servicio, tu consulta no nos molesta.

Imprimir

Ensamblador Versus C en Microcontroladores

Escrito por Raúl Alvarez.

 

Ensamblador Versus CEs mejor programar un microcontrolador en C o en ensamblador?

La única respuesta correcta es: Depende.

Para una respuesta más detallada démosle una mirada a las ventajas y desventajas de cada lenguaje:

 

Ensamblador (Assembly)

Ventajas

  • Controla con precisión la operación del microcontrolador y permite al programador precisión en las operaciones.
  • Permite escribir un código más sucinto, y por lo tanto más veloz. En aplicaciones profesionales se usa sobre todo para escribir drivers para interfaces de periféricos o para escribir rutinas altamente optimizadas que requieren velocidad, tamaño reducido y/o precisión.
  • Es valioso como herramienta educacional, ya que para escribir ensamblador uno debe conocer a detalle la arquitectura interna del microcontrolador, el set de instrucciones, los registros y su funcionamiento interno.

Desventajas

  • No es portable, debido a que depende de la estructura interna del microcontrolador, el código de un microcontrolador no puede correr en otro de diferente arquitectura.
  • No posee estructura ni control de tipos, por lo cual, el programador debe cuidar por sí mismo de proveer una estructura adecuada a su programa y controlar los tipos de datos.
  • El mantenimiento del código (revisión, modificación, ampliación)es más complicado.

Lenguaje C

Ventajas

  • Es portable. Generalmente un programa escrito para un tipo de microcontrolador puede correr con mínimas modificaciones en otro microcontrolador de diferente arquitectura.
  • C proporciona estructura, abstracción y control de tipos de datos (aunque no tan estrictamente como otros lenguajes de alto nivel).
  • Permite también cierto acceso de bajo nivel, similar al ensamblador, combinando en general ciertas características de bajo nivel del ensamblador y otras ventajas ofrecidas por los lenguajes de alto nivel.
  • Es más rápido y eficiente que otros lenguajes de alto nivel usados también para programar microcontroladores (C++, Basic, Java, Python, etc.) y su uso está altamente difundido en aplicaciones profesionales. Con compiladores modernos puede llegar a ser tan rápido como el ensamblador dependiendo de la habilidad y los recursos del programador.
  • Los programas en C son más fáciles de mantener (revisar, modificar, ampliar).
  • Existen muchísimas librerías libremente disponibles para el uso de cualquier programador, lo cual facilita el desarrollo de una aplicación.
  • En aplicaciones profesionales de sistemas embebidos el 90 a 95% (quizás más) de todo el código está escrito mayormente en lenguaje C y en algunos casos en C++. Casi cualquier dispositivo embebido moderno (lavadora, teléfono celular, cámara fotográfica/video, reproductor MP3, router, microondas, sistemas de control para automóviles o aviones, etc.) con seguridad tiene su código escrito en lenguaje C/C++.

Desventajas

  • Es menos veloz que el ensamblador.
  • El código escrito en C ocupa más memoria que el escrito en ensamblador, dada una misma aplicación. Sin embargo los compiladores modernos poseen algoritmos de optimización que logran reducir tremendamente esta diferencia.

Finalmente, la herramienta que funcione mejor para una persona en particular y sobre todo para la solución que se desarrolla, ésa es la más indicada, ya sea ésta ensamblador, C, Basic, Java o cualquier otro lenguaje de alto nivel. Más importante aún es la capacidad, preparación y experiencia del programador y su habilidad para abordar la solución de un problema de manera elegante, eficiente y efectiva.
 

Raúl Alvarez Torrico
www.TecBolivia.com

Deseo recibir noticias de nuevos proyectos, artículos, materiales y promociones especiales.

Nombre:

Correo Electrónico: