Macroensambladores
Enviado por kathygodinez • 19 de Abril de 2012 • 3.483 Palabras (14 Páginas) • 808 Visitas
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.
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.
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.
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(1).
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.
Para mayor información http: www.sapag.com
CONCLUSIONES
Al parecer así como hay diferentes tipos de memoria también hay diferentes tipos de ensambladores y diferentes tipos de buses pero bueno me parece que cada característica le sirven a cada persona o ustedes que opinan..nos vemos(1).
2.4 El Proceso De Ensamble De Uno, Dos O Mas Pasos
Es por esta razón que la mayoría de los ensambladores hacen su trabajo pasando dos veces por el programa fuente: una primera vez se pasa para asignar a cada etiqueta su dirección correspondiente en el programa objeto. El ensamblador pasa una Segunda ocasión por el programa fuente para llevar a cabo el ensamblaje de las instrucciones una vez ya tiene asignadas las direcciones de todas las etiquetas. Estos ensambladores se llaman ensambladores de dos pasadas ("two pass assembler").
Las tareas que el ensamblador lleva a cabo en cada pasada son:
Primera pasada:
1. asignar una dirección de memoria a cada instrucción
2. guardar en una tabla las direcciones de todas las etiquetas del programa
3. procesar algunas de las directrices
Segunda pasada:
1. cambiar los mnemónicos a su código correspondiente en lenguaje de máquina
2. poner las direcciones de los operandos simbólicos o etiquetas en las instrucciones
3. generar los valores de las constantes declaradas
4. procesar el resto de las directrices
5. escribir el programa en lenguaje objeto y el "listing" (1)
(1)Dir.(http://ww.usc.clu.edu/comweb/cco220/ensambladores.htm)
Continuación de ensambladores
El "object program" que se genera se guarda en un archivo en disco, para luego ejecutarse. Este archivo contiene tres (por ahora) tipos de récords:
un "header record" con el nombre del programa, su dirección inicial y el largo del programa (la dirección inicial se obtiene de la directriz START del programa fuente)
varios "text records" con las instrucciones ensambladas
un "end record" con la dirección de la primera instrucción ejecutable del programa(1).
Ensambladores De Dos Pasadas.- consta de una serie de sentencias de una línea, parece natural tener un ensamblador que lea una sentencia, la traduzca a lenguaje de maquina y escriba el código de maquina generando en un archivo y la porción del listado correspondiente, si la hay, en otro. El proceso se repetirá hasta que todo el programa sé haya traducido. Por desgracia, este método no funciona.
La Primera Pasada.- la función principal es construir, lo que sé llama tabla de símbolos, donde se guardan los valores de todos los símbolos. Un símbolo es una etiqueta o un valor al que se le asigna un nombre simbólico por medio de una seudoinstrucción: espacio equ 100
La Segunda Pasada.- es generar el programa objeto y posiblemente, imprimir el listido de ensamblaje. Además, debe producir cierta información necesaria para que el programa ligador enlace procedimientos ensamblados en momentos diferentes(2).
(2.Org. De Computadoras Un Enfoque Estructurado, Tanenbaum, P.453)
2.5 Literales Y Expresiones
Literales.- se le llama así a las constantes para las cuales el ensamblador reserva memoria automática. Además de ahorrar al programador un poco deescritura, las literales hacen más legibles de los programas al hacer que el valor de la constante aparezca en la instrucción fuente(1).
Expresiones.-Una expresión es una combinación de símbolos constantes, operadores algebraicos y paréntesis. La expresión especifica un valor, el cual será utilizado como operando.
Las expresiones pueden consistir de símbolos, constantes o del caracter ‘ * ‘ (denotando el valor actual del contador de programa PC) unidos entre sí por alguno de los operadores: +, -, *, /, %, &, I, ^. (2)
(1.Org. De Computadoras Un Enfoque Estructurado, Tanenbaum, P.500)
(2 Dir. Members.es.tripod.de/patricio/ensam/ensam1.htm) continuación de Macros y Procedimientos
2.6 Definición De Una Macro
Una macro es un grupo de instrucciones repetitivas en un programa que se codifican solo una vez y pueden utilizarse cuantas veces sea necesario.
La principal diferencia entre una macro y un procedimiento es que en la macro se hace posible el paso de parámetros y en el procedimiento no (esto es aplicable solo para el MASM, hay otros lenguajes de Programación que si lo permiten). Al momento de ejecutarse la macro cada parámetro es sustituido por el nombre o valor especificado
...