Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porJosé Luis Martin Lara Modificado hace 8 años
1
P ROCESO DE E NSAMBLADO Cámara Vázquez Berenice Rubí
2
E NSAMBLADORES DE DOS PASADAS Un programa de lenguaje ensamblador consta de una serie de enunciados de una sola línea Las referencias adelantadas se manejan de dos maneras: 1.- El ensamblador podría leer el programa fuente dos veces(traductor de dos pasadas). 1.1 La primera pasada se reúnen las definiciones de simbolos, incluidas en etiquetas de enunciados y se guardan en una tabla.
3
1.2 A la segunda pasada ya se conocen los valores de todos los símbolos,así que ya no quedan referencias adelantadas y cada enunciado puede leerse, ensamblarse hacia la salida.
4
2.-Lee el programa de lenguaje ensamblador una ve, convertirlo en una forma intermedia y guardar esta forma intermedia en una tabla en la memoria. 2.1 Efectúa otra pasada en la tabla, no en el programa fuente. Si hay suficiente memoria, este enfoque ahorra tiempo de E/ S. Si se va a producir un listado hay que guardar todo el enunciado fuente(con comentarios).
5
P RIMERA PASADA Función: construir una tabla de símbolos. Símbolo: Es una etiqueta al que se le asigna un nombre simbólico mediante una seudoinstrucción. Al asignar un valor a un símbolo en el campo de etiqueta de una instrucciones ensamblador debe saber que dirección tendrá esa instrucción durante la ejecución de programa.
6
Contador de posiciones de instrucciones: Esta variable se pone en 0 al principio de la primera pasada y se incrementa en una cantidad igual a la longitud de la instrucción cada vez que se procesa una instrucción. Seudoinmediatas: El ensamblador asigna memoria para el operando inmediato al final del programa y genera una instrucción que hace referencia a ella.
7
S EGUNDA PASADA Función: Generar el programa objeto y posiblemente imprimir el listado de ensamblado. Debe producir cierta información que el enlazador necesita para enlazar procedimientos ensamblados en diferentes momentos para producir un solo archivo ejecutable. Lee las líneas una por una y se procesan una por una.
8
T ABLA DE SÍMBOLOS Memoria asociativa: Es un conjunto de pares( símbolo, valor). Dado un símbolo la memoria asociativa debe producir un valor.
9
E NLAZADO Y CARGA La traducción completa de un programa fuente requiere dos pasos: 1.- Compilación o ensamblado de los procedimientos fuente. 2.- Enlazado de los módulos objeto. El ensamblador se encarga del primer paso y el segundo corre por cuenta del enlazador.
10
La traducción de procedimiento fuente a modulo objeto representa un cambio de nivel porque el lenguaje fuente y el lenguaje objetivo tienen diferentes instrucciones y notación. Enlazador: Reúne los procedimientos traducidos por separado y los enlaza para que se ejecuten como una unidad llamada programa binario ejecutable.
11
T AREAS QUE REALIZA EL ENLAZADOR Para ejecutar el programa, el enlazador obtiene los módulos objeto de la memoria principal a fin de formar la imagen de programa binario ejecutable.
12
E STRUCTURA DE UN MODULO OBJETO 1.-Los módulos objeto a menudo contienen 6 partes : 2.-El modulo es una lista de símbolos definidos en el modulo a los que otros módulos podían hacer referencia. Fin del modulo Diccionario de reubicación Instrucciones de maquina y constantes Tabla de referencias externas Tabla de puntos de ingreso Identificación
13
3.-Consiste en una lista de los símbolos que se usan en el modulo pero se definen en otros módulos, junto con una lista que indica cuales instrucciones de maquina usan cuales símbolos. El enlazador necesita una segunda lista para poder insertar las direcciones correctas en las instrucciones que usan símbolos externos.
14
4.-Es el código ensamblado y las constantes, en esta parte el modulo del objeto es la única que se cargara en la memoria para ejecutarse. Las otras 5 partes serán utilizadas por el enlazador y se desecharan antes de que inicie la ejecución. 5.-Es el diccionario de reubicación. 6.- Es una indicación de fin de modulo a veces una suma de verificación para detectar errores ocurridos durante la lectura del modulo y la dirección en la que debe iniciarse la ejecución.
15
T IEMPO LIGADO Y REUBICACIÓN DINÁMICA Hay por lo menos 6 posibilidades de tiempo ligado: 1.-cuando se escribe el programa 2.-cuando se traduce el programa 3.-cuando se enlaza el programa pero antes de cargarlo 4.-cuando se carga el programa 5.-cuando se carga un registro base que se usa para direccionamiento 6.-cuando se ejecuta la instrucción que contiene la dirección.
16
Si una instrucción que contiene una memoria se desplaza después del ligado, será incorrecta. Si el traductor produce un binario ejecutable como salida, el ligado habrá ocurrido en el momento de la traducción y el programa deberá ejecutarse en la dirección en la que el traductor esperaba que se ejecutara.
17
E NLAZADO DINÁMICO Tiene la propiedad de que todos los procedimientos que un programa podría invocar se enlazan antes de que el programa pueda iniciar su ejecución. Enlazado dinámico: Es una forma mas flexible de enlazar procedimientos compilados por separado es enlazar cada procedimiento en el momento en que se invoca por primera vez.
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.