Ensambladores
- Rafael Rivera
- 17 nov 2015
- 4 Min. de lectura
¿De dónde viene la denominación de ensamblador?

Es una consecuencia natural del desarrollo histórico de la programación, al aumentar el tamaño de los programas y el número de subrutinas de biblioteca disponibles. Un programador, que tiene que codificar un programa muy largo, normalmente lo descompone, lo divide en un número más o menos grande de subprogramas o rutinas -independientes o no- los escribe, los traduce y los prueba por separado. Por consiguiente, el traductor debe seguir la pista de todas las referencias cruzadas entre los diversos subprogramas y subrutinas con el fin de generar un programa que esté en condiciones de ser procesado; es decir, debe estar en condiciones de ensamblar (unir) todas las partes para dar un resultado único; y de ahí viene el nombre de ensamblador.
¿Que es ensamblador y para que sirve?
Cuando se empezaron a utilizar símbolos nmotécnicos, se escribieron programas para traducir automáticamente los programas escritos en lenguaje ensamblador a lenguaje máquina. A estos programas traductores se les llamo ensambladores .

La entrada para un ensamblador es un programa fuente escrito en lenguaje ensamblador. La salida es un programa objeto , escrito en lenguaje de máquina. El programa objeto incluye también la información necesaria para que el cargador pueda preparar el programa objeto para su ejecución.
De aquí en adelante llamaremos lenguaje ensamblador al conjunto de nemotécnicos y a las reglas para su manejo. Al programa que traduce un programa objeto a partir de un programa escrito en lenguaje ensamblador lo llamaremos ensamblador .
Funciones de un ensamblador :
La función principal del ensamblador es: Traducir el código fuente (instrucciones nemonicas a código máquina). Este código generado recibe el nombre de codigo objeto.
Para efectuar la traducción de código fuente a código objeto es necesario realizar las siguientes funciones:
Conversión de las constantes a datos especificos en el programa fuente a sus representaciones internas de maquina.
Conversión de operandos simbolicos y sus direcciones de maquina equivalentes.
Conversión de código de operaciones a nemonicos a lenguaje maquina.
Construcción de las instrucciones de maquina en un formato adecuado.
Escritura de un programa objeto y listado ensamblado.
Para obtener el verdadero programa objeto del procesador de la computadora, es necesario encadenar todos los subprogramas entre si y con las subrutinas de biblioteca que sean precisas. Esta fusión es realizada por un programa de servicio que recibe varios nombres: Editor de encadenamiento, cargador, introductor o montador de enlaces.
TIPOS DE ENSAMBLADORES

Se pueden hacer varios tipos de ensambladores, con las anteriores características básicas, según el tipo de máquina y de la potencia del lenguaje ensamblador deseado. En definitiva, el ensamblador empleado dependerá de que en las instrucciones se emplee uno o varios operandos, de que existan uno o varios tipos de direccionamiento, etc. La potencia de un ensamblador se mide por las pseudo instrucciones que contenga. Aunque todos los ensambladores realizan básicamente las mismas tareas, podemos clasificarlos de acuerdo a características.
Clasificación de los ensambladores:
Ensambladores Cruzados (Cross-Assembler) :
Se denominan así los ensambladores que se utilizan en una computadora que posee un procesador diferente al que tendrán las computadoras donde va a ejecutarse el programa objeto producido. El empleo de este tipo de traductores permite aprovechar el soporte de medios físicos (discos, impresoras, pantallas, etc.), y de programación que ofrecen las máquinas potentes para desarrollar programas que luego los van a ejecutar sistemas muy especializados en determinados tipos de tareas.
Ensambladores Residentes :
Son aquellos que permanecen en la memoria principal de la computadora y cargan, para su ejecución, al programa objeto producido. Este tipo de ensamblador tiene la ventaja de que se puede comprobar inmediatamente el programa sin necesidad de transportarlo de un lugar a otro, como se hacía en cross-assembler, y sin necesidad de programas simuladores.
Microensambladores :
Generalmente, los procesadores utilizados en las computadoras tienen un repertorio fijo de instrucciones, es decir, que el intérprete de las mismas interpretaba de igual forma un determinado código de operación.
El programa que indica al intérprete de instrucciones de la UCP cómo debe actuar se denomina microprograma. El programa que ayuda a realizar este microprograma se llama microensamblador. Existen procesadores que permiten la modificación de sus microprogramas, para lo cual se utilizan microensambladores.
Macroensambladores :
Son ensambladores que permiten el uso de macroinstrucciones (macros). Debido a su potencia, normalmente son programas robustos que no permanecen en memoria una vez generado el programa objeto. Puede variar la complejidad de los mismos, dependiendo de las posibilidades de definición y manipulación de las macroinstrucciones, pero normalmente son programas bastantes complejos, por lo que suelen ser ensambladores residentes.
Ensambladores de una fase :
Estos ensambladores leen una línea del programa fuente y la traducen directamente para producir una instrucción en lenguaje máquina o la ejecuta si se trata de una pseudoinstrucción. También va construyendo la tabla de símbolos a medida que van apareciendo las definiciones de variables, etiquetas, etc.}
Ensambladores de dos fases :
Los ensambladores de dos fases se denominan así debido a que realizan la traducción en dos etapas. En la primera fase, leen el programa fuente y construyen una tabla de símbolos ; de esta manera, en la segunda fase, vuelven a leer el programa fuente y pueden ir traduciendo totalmente, puesto que conocen la totalidad de los símbolos utilizados y las posiciones que se les ha asignado. Estos ensambladores son los más utilizados en la actualidad.
Comments