¿Por qué aprender Ensamblador?

¿Por qué aprender Ensamblador?

El ensamblador es indispensable en nuestros dispositivos, sin embargo, la importancia es relegada a un alto nivel que muchos ignoran aprender sobre el mismo (ensamblador). En este artículo, se tocarán puntos importantes para entender este término y responder a la pregunta que se encuentra de título.

¿Qué es ensamblador?

            El ensamblador es un lenguaje de bajo nivel que permite un control directo de la CPU y todos los elementos asociados. Cada línea de un programa ensamblador consta de una instrucción del procesador y la posición que ocupan los datos de esa instrucción.

            Desarrollar programas en lenguaje ensamblador es un proceso laborioso. El procedimiento es similar al de cualquier lenguaje compilado. Un conjunto de instrucciones y/o datos forman un módulo fuente. Este módulo es la entrada del compilador, que chequea la sintaxis y lo traduce a código máquina formando un módulo objeto. Finalmente, un enlazador (montador o linker) traduce todas las referencias relativas a direcciones absolutas y termina generando el ejecutable.

¿En qué escenario fue creado el ensamblador?

A finales de la década de los 40’s, en la Universidad de Cambridge, estaban trabajando en el Laboratorio de Computación, comandado por Maurice V. Wilkes, con la Computadora Automática de Almacenamiento Electrónico de Retrasos (EDSAC), con el fin de permitir a los no especialistas escribir código para que la computadora lo ejecutara, entonces es aquí donde David J Wheeler (parte del equipo de Maurice) crea un conjunto de instrucciones basadas en palabras que le indicaban a la computadora qué hacer, y por ende, se crea el primer ensamblador y se forma la base de los lenguajes de programación.

¿Por qué aprender este lenguaje?

·         El lenguaje ensamblador es ideal para escribir programas embebidos, debido a que utilizan muy poca memoria.

·         Los lenguajes de alto nivel no proporcionan a los programadores un control exacto sobre el código máquina generado por los compiladores. El lenguaje ensamblador nos permite especificar con precisión el código ejecutable de un programa.

·         Para los video juegos, se debe saber programar ensamblador, debido a que se necesita una escritura de código que aproveche al máximo las características de hardware del sistema de destino. Utilizan el lenguaje ensamblador como su herramienta preferida, ya que les permite un acceso directo al hardware de la computadora, y el código puede optimizarse en forma manual para obtener la máxima velocidad.

·         El lenguaje ensamblador nos ayuda a obtener una comprensión general en cuanto a la interacción entre el hardware de computadora, los sistemas operativos y los programas de aplicación.

·         En ocasiones, los programadores de aplicaciones encuentran que las limitaciones en los lenguajes de alto nivel les impiden realizar tareas de bajo nivel con eficiencia, como la manipulación a nivel de bits y el cifrado de datos. A menudo hacen llamadas a subrutinas escritas en lenguaje ensamblador para lograr su objetivo.

·         Los fabricantes de hardware crean controladores de dispositivos para el equipo que venden. Los controladores de dispositivos son programas que traducen los comandos generales del sistema operativo en referencias específicas a los detalles relacionados con el hardware. Por ejemplo, los fabricantes de impresoras crean un controlador de dispositivo de MS-Windows distinto para cada modelo que venden. Lo mismo se aplica para los sistemas operativos Mac OS, Linux y otros.

 

En conclusión, se puede apreciar que ensamblador no es un invento deficiente, al contrario, es algo necesario para los programadores, es algo inherente a cualquier persona que escriba código. El ensamblador no se trata de únicamente de registros por si solos, se trata de traducir a lenguaje máquina lo que estamos escribiendo, cualquier aparato electrónico tiene su arquitectura, puede que sea diferente o la misma, pero su función es ayudarnos a facilitar nuestro día a día. Solo piense en esto ¿qué pasaría si el ensamblador no existiera? ¿tendríamos el alcance tecnológico que existe en la actualidad? nadie lo sabe, lo que si sabemos es que no podemos ignorar, como programadores, el ensamblador.

Referencias

 

Irvine, Kip R. (2005). En L. M. Cruz Castillo, Cruz Castillo, 04 Lenguaje Ensamblador para Computadoras Basadas en Intel (5ª ed., pp. 5-6). Christianna Lee.

 

Museu Informática. (11 de julio de 2014). EDSAC: El primer ordenador de programa almacenado. EDSAC - Web del Museo de Informática 2.0 (upv.es)

RiUMA. (07 de septiembre de 2015). Prácticas de ensamblador basadas en Raspberry Pi. Prácticas de ensamblador basadas en Raspberry Pi (uma.es)

No comments

Comentarios en artículos

No comments

Nobody has submitted a comment yet.