Los lenguajes de bajo nivel, como ensamblador, permiten un contacto casi directo con el microcontrolador.

Tal vez hayas escuchado en muchas ocasiones que el lenguaje ensamblador es muy complicado y que no tiene caso aprenderlo, ya que puedes utilizar lenguajes de alto nivel como C para realizar tus proyectos. Aunque esto es parcialmente cierto, no es lo ideal ya que cada lenguaje tendrá sus ventajas y desventajas; para entender esto, es importante conocer un poco sobre el lenguaje ensamblador.

Los dispositivos digitales como los microcontroladores sólo entienden valores (como su nombre lo indica) digitales, en el ámbito de la electrónica podrán ser unos y ceros, por lo tanto, cuando cargas un programa en un micro, realmente lo que estás haciendo es almacenar en su memoria unos y ceros, los cuales le indicarán al micro lo que deberá hacer, dicho de otra forma, entenderá estos valores según la forma y el lugar donde estén almacenados y los interpretará para controlar los puertos de entrada y salida.

Imagina entonces que todo programador tuviera que trabajar directamente con unos y ceros para poder programar un microcontrolador, sería complicado, ¿cierto?, sería como programar en chino (a menos que seas chino, en ese caso, sería como programar en español… a menos que seas un chino que habla español, en ese caso…. bueno, creo que se entiende el punto), por lo tanto, se creó el lenguaje ensamblador, el cual surgió con el objetivo de facilitar el proceso de creación de un código, para lograrlo, se crearon “mnemónicos” que son una forma de abreviar palabras o frases, por ejemplo:

Si para poner un bit de un puerto específico en alto tenías que enviar la cadena de bits:

0010110010110100

Lo cambiaron por enviar la línea de código:

BSF PORTA, 1

A simple vista puede parecer igual de complejo, sin embargo, si lo analizamos un poco podremos descifrar que el mnemónico BSF significa “Bit Set F” donde F indicará que estás trabajando con un registro y “Bit Set” indica que un bit se pondrá en alto, de esta forma, se volvió más fácil para el programador aprenderse un conjunto de instrucciones para realizar el código, que aprenderse cadenas de bits conformados por unos y ceros, los cuales, son más difíciles de utilizar directamente.

Posteriormente, se notó que los códigos realizados en lenguaje ensamblador tendían a ser demasiado largos y en muchas ocasiones eran repetitivos, por ejemplo, si hubiera una sección del código que se tuviera que repetir 30 veces y que para realizarla se necesitaran 10 líneas de código, obtendríamos 300 líneas repetitivas, ahora imagina que ese proceso es común en muchos códigos de personas diferentes; surge aquí una pregunta: ¿se puede optimizar el tamaño de los códigos y facilitar la programación?, la respuesta fue muy clara: “Sí”.

Los lenguajes de alto nivel como el lenguaje C, aprovechan que existen secciones de códigos que se realizan de forma muy constante y los engloban en instrucciones, las cuales son más fáciles de aprender ya que se asemejan más a un lenguaje humano, es por esto, que se facilita aprender a programar de esta forma y de ahí que muchas personas lo prefieran. Siguiendo el caso anterior, esas 10 líneas de código repetitivas podrían quedar en una instrucción y reducir la longitud del código.

Se puede hacer una comparación de la siguiente forma, imagina que eres extranjero y que el lenguaje ensamblador son las palabras que usamos nosotros como personas, por lo tanto, para aprender a comunicarnos requerimos entender cada una de las palabras que existen, si consideramos que en español hay alrededor de 300,000 palabras, entonces el proceso se complica y se puede volver largo. Pero, ¿qué pasaría si alguien crea conjuntos de palabras para facilitar la comunicación?, es decir oraciones, el proceso de aprender a comunicarse se volverá más sencillo, ya que cada persona tendrá que aprender cierto número de oraciones que será menor al número de palabras, sin embargo, estaremos limitados a éstas, y en ciertas ocasiones vamos a necesitar usar una palabra pero no forzosamente toda la oración.

Dicho esto, los beneficios que tendrá un lenguaje de alto nivel como C son la facilidad de aprender y la oportunidad de optimizar el tiempo de realización de un código, sin embargo, estarás atado a las instrucciones determinadas por el inventor, por lo cual, estarás limitado y no podrás explotar al máximo los recursos que el microcontrolador puede ofrecer.

Por otro lado, los lenguajes de bajo nivel, como ensamblador, permiten un contacto casi directo con el microcontrolador, con lo cual, podremos aprovecharlo al máximo y optimizar sus recursos, ya que no tendremos líneas de código predefinidas por otra persona, sino que sólo tendremos las líneas que nosotros como programadores requiramos, sin embargo, será un poco más complicado y los códigos serán más largos.

Así que, tú decides…

Lo siento, debes estar conectado para publicar un comentario.
Menú