La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Katty Evangelina Hipólito Chi.   Aunque cada maquina tiene un lenguaje ensamblador distinto, el proceso de ensamblador tiene suficiente similitudes.

Presentaciones similares


Presentación del tema: "Katty Evangelina Hipólito Chi.   Aunque cada maquina tiene un lenguaje ensamblador distinto, el proceso de ensamblador tiene suficiente similitudes."— Transcripción de la presentación:

1 Katty Evangelina Hipólito Chi

2   Aunque cada maquina tiene un lenguaje ensamblador distinto, el proceso de ensamblador tiene suficiente similitudes en las distintas maquinas que es posible describirlo en términos generales El proceso de ensamblado

3   Un programa ensamblador consta de una serie de enunciados de una sola línea, al principio podría parecer natural tener un ensamblador que lea un enunciado, lo traduzca a lenguaje maquina y luego escriba la instrucción de lenguaje de maquina generada en un archivo, escribiendo al mismo tiempo la línea correspondiente del listado, si se va a producir, en otro archivo. Este proceso 7.3.1 ensamblador de dos pasadas

4   La primera función de la primera pasada es contruir una tabla llamada tabla de símbolos que tienen los valores de todos los símbolos  un símbolo es una etiqueta o bien un valor al que se asigna un nombre simbólico mediante una seudoinstrucción como: 7.3.2 primera pasada

5   Al asignar un valor a un símbolo en el campo de etiqueta de una instrucción, el ensamblador debe saber que dirección tendrá esa instrucción durante la ejecución del programa.

6   El ensamblador mantiene una variable llamada contador de posiciones de instrucciones esto para seguir la pista a la dirección de tiempo de ejecución de la instrucción. Esta variable se pone en 0 al principio de la primera pasada y se incremente en una cantidad igual a la longitud de la instrucción cada ves que se procesa una instrucción.

7  Ejemplo de Pentium II

8   La primera pasada de casi todos los ensambladores utiliza por lo menos tres tablas: la tabla de símbolos, la tabla de seudoinstrucciones y la tabla de códigos de operación. Si se necesita, también se mantiene una tabla de literales.

9   Los símbolos se define ya sea usándolos como etiquetas o por definición explicita ( por ejemplo, EQU) cada entrada de la tabla de símbolos contiene el símbolo mismo (o un apuntador a el), su valor numérico y a su veces otras informaciones.

10   Esta información adicional podría incluir :  La longitud del campo de datos asociado al símbolo.  Los bits de reubicación.(el símbolo cambia de valor si el programa se carga en una dirección diferente de la que el ensamblador supuso?)  Si el símbolo estará o no accesible afuera del procedimiento.

11   La función de la segunda pasada es generar el programa objeto y probablemente imprimir el listado de ensamblador.  Además la segunda pasada debe producir cierta información que en ensamblador necesita para enlazar procedimiento ensamblados en diferentes momentos para producir un solo archivo ejecutable. Segunda pasada

12

13   La función de la segunda pasada es parecido al de la primera:  Se leen las líneas un por una y se procesan una por una. Dado que ya escribimos el tipo, el código de operación y la longitud al principio de cada liena en el archivo temporal) se leen todos estos datos para ahorrar algo de análisis

14

15

16

17   durante la primera pasada el procesador de ensamblado, el ensamblador acumula información acerca de los símbolos y valores, la cual debe guardarse en la tabla de símbolos para consultar durante la segunda pasada 7.3.4 La tabla de símbolos

18   Hay varias formas de organizar la tabla de símbolos

19  Los compiladores y los ensambladores generalmente traducen un procedimiento a la vez y colocan la salida traducida al disco Antes de que el programa pueda ejecutarse, es preciso encontrar todos los procedimientos traducidos y enlazados de forma correcta Si no se encuentra con memoria virtual, el programa enlazado también se deberá cargar explícitamente en la memoria principal 7.4 Enlazado y carga

20   Los programas que realizan estas funciones recibe diversos nombres, como enlazador (linker) cargador de en laces (linking loader) y editor de enlace( linkage editor ) La traducción completa de un programa fuente requiere dos pasos :  Compilación o ensamblado de los procedimientos fuente  Enlazado de los modulos objetos

21

22   Al principio la primera pasada del procesos de ensamblad, el contador de posiciones de instrucciones se pone en 0. este paso equivale a suponer que el modulo objeto estará en la dirección (virtual) 0 durante su ejecución. 7.4.1 tareas que realiza el enlazador

23

24

25   El enlazador fusiona los espacios de direccionamiento de los módulos objeto en un solo espacio de direcciones lineal siguiendo estos pasos:  Construccion de una tabla con todos los módulos objeto y sus longitudes.  Con base en esta tabla, se asigna una dirección de inicio a cada modulo objeto  Se busca todas las instrucciones que hacen referencia a la memoria y se suma a cada una de ellas una constantes de reubicación igual a la dirección de inicio de modulo


Descargar ppt "Katty Evangelina Hipólito Chi.   Aunque cada maquina tiene un lenguaje ensamblador distinto, el proceso de ensamblador tiene suficiente similitudes."

Presentaciones similares


Anuncios Google