El cargador se encarga de realizar la ejecución de un programa, pero no sin antes preparar varios componentes del procesador para empezar su tarea. Una vez listo el procesador, se procede a leer instrucción por instrucción y lo ejecuta.
Una vez el enlazador termina su trabajo, este crea como última acción el archivo ejecutable. En este momento pasamos a otro componente del sistema, el cargador. Este toma el producto generado por el enlazador, lo lleva a la memoria principal y a partir de ello, lo ejecuta. Antes de esto, configura el procesador para que tenga un estado de inicio de programa: limpiar registros, apuntar el program counter a la primer instrucción, configurar registros de bandera y estado. Reserva memoria del segmento de código, segmento de montículo, segmento de pila y segmento de datos. Pero, ¿cómo hace todo eso?
-
Lee el encabezado del archivo con información como el tamaño para los segmentos de texto y datos.
-
Crea un espacio de memoria para el programa: Se va a la memoria RAM y busca un espacio donde pueda crear el programa. Crea un segmento de pila con las especificaciones que tenga y configura los registros del apuntador de pila y base de pila.
-
Copia instrucciones y datos de los archivos ejecutables al espacio de memoria asignado: Pasan del disco duro a la memoria RAM. Allí, el procesador solicita directamente los datos para que sean cargados a los registros que corresponden para ser ejecutados.
-
Inicializa los registros de la máquina: Inicializa PC, resetean banderas y se configuran registros de control interno del CPU para empezar las rutinas.
-
Inicializa las rutinas de arranque del programa donde se pasan argumentos, se llaman las funciones principales para esperar el retorno y se finaliza el programa.
El segmentos de texto hace referencia al código ejecutable mientras que el segmento de datos tiene todas las instancias de valores, cadenas alfanuméricas, constantes numéricas y mensajes al usuario.
Para la completa ejecución de un programa, se debe pasar por tres componentes del sistema para verificar que todo esté correcto y no exista conflicto alguno que pueda interrumpir la ejecución del mismo. El ensamblador, enlazador y cargador trabajan en conjunto, cada uno con sus tareas específicas, para la precisa ejecución del programa sin inconveniente alguno.
Referencias
Irvine, K. R. (2002). Assembly Language for Intel-Based Computers (4 Har/Cdr ed.). New Jersey, United States: Prentice Hall.
Techopedia. (s. f.). Loader. Recuperado 28 de noviembre de 2020, de https://www.techopedia.com/definition/8104/loader
Arif, M. (2013, 9 abril). Loaders. slideshare. https://es.slideshare.net/mohammedarif89/loaders