Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porJosé Acosta Quiroga Modificado hace 7 años
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
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.