2.1 ensamblador y (ligador) a utilizar
Aunque todos los ensambladores realizan básicamente las mismas tareas,
podemos clasificarlos de acuerdo a características.
Así podemos clasificarlos en:
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.
Sin embargo, puede presentar problemas de espacio de memoria, ya que el
traductor ocupa espacio que no puede ser utilizado por el programador. Asimismo,
también ocupará memoria el programa fuente y el programa objeto. Esto obliga a
tener un espacio de memoria relativamente amplio. Es el indicado para desarrollos
de pequeños sistemas de control y sencillos automatismo empleando
microprocesadores.
La ventaja de estos ensambladores es que permiten ejecutar inmediatamente el
programa; la desventaja es que deben mantenerse en la memoria principal tanto el
ensamblador como el programa fuente y el programa objeto.
Macroensambladores.
Son ensambladores que permiten el uso de macro instrucciones (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
macro instrucciones, pero normalmente son programas bastantes complejos, por lo
que suelen ser ensambladores residentes.
Micro ensambladores.
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 micro programa. El programa que ayuda a realizar esta
micro programa se llama micro ensamblador.
Existen procesadores que permiten la
modificación de sus micro programas, para lo cual se utilizan micro ensambladores.
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 pseudo-instrucción. También va construyendo la tabla de símbolos a
medida que van apareciendo las definiciones de variables, etiquetas, etc.
Debido a su forma de traducción, estos ensambladores obligan a definir los
símbolos antes de ser empleados para que, cuando aparezca una referencia a un
determinado símbolo en una instrucción, se conozca la dirección de dicho símbolo
y se pueda traducir de forma correcta. Estos ensambladores son sencillos, baratos
y ocupan poco espacio, pero tiene el inconveniente indicado.
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.
- El código escrito en lenguaje ensamblador posee una cierta dificultad de ser entendido ya que su estructura se acerca al lenguaje máquina, es decir, es un lenguaje de bajo nivel.
- El lenguaje ensamblador es difícilmente portable, es decir, un código escrito para un microprocesador, puede necesitar ser modificado, para poder ser usado en otra máquina distinta. Al cambiar a una máquina con arquitectura diferente,generalmente es necesario reescribirlo completamente.
- Con el lenguaje ensamblador se tiene un control muy preciso de las tareas realizadas por un microprocesador por lo que se pueden crear segmentos de código difíciles y/o muy ineficientes de programar en un lenguaje de alto nivel, ya que, entre otras cosas, en el lenguaje ensamblador se dispone de instrucciones del CPU que generalmente no están disponibles en los lenguajes de alto nivel.Podemos distinguir entre dos tipos de ensambladores:
- Ensambladores modulares 32 bits o de alto nivel, son ensambladores que aparecieron como respuesta a una nueva arquitectura de procesadores de 32 bits, muchos de ellos teniendo compatibilidad hacia atrás pudiendo trabajar con programas con estructuras d 16 bits.
Ensambladores básicos. Son de muy bajo nivel, y su tarea consiste básicamenteen ofrecer nombres simbólicos a las distintas instrucciones, parámetros y cosas.
Referencias Bibliograficas:
http://documents.mx/documents/unidad-2-lenguaje-de-interfaz.html
http://itpn.mx/recursosisc/6semestre/lenguajesdeinterfaz/Unidad%20II.pdf
https://es.slideshare.net/KILLERMSTR/prez-camacho-jess-asmeth
http://lenguajes-interfaz-2013.blogspot.mx/2014/03/unidad-ii-programacion-basica.html
http://lenguajesdeinterfazitsncg.blogspot.mx/2015/05/ensamblador-y-ligador-utilizar.html
No hay comentarios.:
Publicar un comentario