Enlazador

En la construcción de nuestro programa, es importante pensar en la modularización del mismo. Esto permite crear aplicaciones mejor estructuradas y más fáciles de mantener. El enlazador hace todo es posible al unir o bien, como lo dice su nombre, enlazar todos los archivos de código objeto binario creados en el proceso de ensamblaje para que estos funcionen en conjunto. 

Seguidamente del proceso de ensamblaje donde, resumidamente, se realiza el manejo de etiquetas y se convierten las instrucciones de lenguaje ensamblador a lenguaje máquina, es el turno del enlazador de realizar su trabajo. El enlazador o “linker” es la herramienta que se encarga de combinar los diferentes archivos que componen un programa en tres tareas principales. 

Ya introducida la tarea que realiza el enlazador, es importante conocer como ejecuta su proceso. Son tres tareas principales: 

  • Busca en las librerías de programas las rutinas usadas por el programa: Estas vienen incluidas dentro del ambiente de compilación que se utiliza. El lenguaje ensamblador que se utiliza viene con librerías que desarrollan funciones o métodos que son usuales de utilizar: leer información del teclado, imprimir en pantalla, abrir un archivo, entre otros. Si no existe la librería, se busca en otros archivos que se encuentran dentro del mismo directorio o ruta específica para librerías. 

  • Determina las ubicaciones de memoria de los componentes y los ajusta como referencias absolutas: Son creadas en el momento del enlazamiento porque se toma la tabla de etiquetas del programa1, luego del programa2 (o librería). Si ambas tienen varias etiquetas en las mismas direcciones, se mantienen las del primer programa y las del segundo se corren n bytes, n siendo el tamaño del programa1. 

  • Resuelve referencias entre archivos: La unión de la llamada a componentes externos. Un error de esta herramienta sería que al enlazar programas, existan etiquetas con el mismo nombre porque no puede determinar si se usa la del archivo local o la del archivo externo que se incluye. Otro error de enlazamiento sería hacer el llamado a una etiqueta que no se encuentra en ningún archivo de código fuente que se está uniendo 

Al final de todas estas acciones y como última tarea, en enlazador crea el archivo ejecutable del programa. 

En programas más complejos de lo usual, es normal contar con distintos archivos de código objeto binario para la construcción del mismo. Cada uno está estructurado de tal forma que realizan una función específica y al unirlos, o bien enlazarlos, se obtenga el resultado que se tenía planeado. El programa, al estar modularizado, se logra mantener en un mejor orden y en mayor control sobre él mismo completamente para el caso de mejoras o resolución de errores. 

Referencias

Irvine, K. R. (2002). Assembly Language for Intel-Based Computers (4 Har/Cdr ed.). New Jersey, United States: Prentice Hall. 

Klitzke, E. (2017, 15 febrero). All About Linkers. Recuperado 20 de noviembre de 2020, de https://eklitzke.org/all-about-linkers  

GeeksforGeeks. (2019, 21 noviembre). Linker. Recuperado 20 de noviembre de 2020, de https://www.geeksforgeeks.org/linker/ 

No comments

Comentarios en artículos

No comments

Nobody has submitted a comment yet.