¿Qué es el problema de reubicación y referencia directa?

1 Respuestas


  • Las referencias hacia adelante se utilizan generalmente en lenguaje ensamblador. En la referenciación directa, se hace referencia a la variable o etiqueta antes de declararse. Se pueden resolver diferentes problemas mediante la referenciación directa de una pasada o dos pasadas. En One Pass, el programa fuente de referencia directa se traduce instrucción por instrucción. El ensamblador deja un espacio de dirección para la etiqueta cuando se hace referencia a ella y cuando el ensamblador encuentra la declaración de la etiqueta, usa parches posteriores. Las referencias de dos pases hacia adelante consisten en dos pases.

    Durante la tabla de símbolos de la primera pasada, se mantienen la tabla de códigos de operación y la tabla de etiquetas. En la tabla de códigos de operación se almacena el tamaño y la dirección de la instrucción. La etiqueta y la dirección de la etiqueta se almacenan en la tabla de etiquetas. Cuando se encuentra una etiqueta, su nombre se almacena en la tabla de etiquetas cuando se encuentra la declaración de etiquetas, luego su ubicación también se almacena en la tabla de etiquetas.

    Durante el segundo paso, se lleva a cabo la traducción del idioma de origen al idioma de la máquina. Las direcciones de instrucciones y las direcciones de etiquetas se utilizan de la tabla de símbolos en lugar de sus nombres. El compilador no sabe dónde se ejecutará el programa en la memoria, por lo que el compilador generó direcciones lógicas en lugar de direcciones absolutas. Loader también utiliza la constante de reubicación para resolver el problema de la reubicación. El vinculador resuelve el problema de referencias externas durante la compilación. Linder conecta el programa objeto al código para funciones de biblioteca estándar.

Escribe tu respuesta

Tu respuesta aparecerá después de la moderación