Ir al contenido principal

Enlazador, ensamblador y cargador

 En este blog quisiera mencionar sobre tres programas que son fundamentales para convertir un archivo en código fuente a una aplicación en un sistema lo cual son el enlazador, ensamblador y cargador. Se explicará cada uno junto con sus funciones principales.

Enlazador

Pues es un programa que contiene la computadora que se encarga de tomar un o varios archivos de objetos generados por un compilador y los combina en un programa ejecutable.

Linker. fuente: http://enlazadoresuvm.blogspot.com/

Las aplicaciones suelen estar formadas por varios módulos que abarcan archivos de objetos separados, osea, cada uno siendo un programa de computadora compilado. Un programa en su conjunto refiere a estos archivos de objetos compilados por separado utilizando símbolos. Entonces el enlazador combina estos archivos separados en un solo programa unificado y resuelve las referencias simbólicas a medida que avanza.

Funciones del enlazador:
  • Enlazar al mismo tiempo módulos traducidos independientemente
  • Superposición de procesamiento.
  • Poder dar modificación del programa
  • Dar acceso a las bibliotecas

 Ensamblador

Un ensamblador es un programa que toma las instrucciones básicas del ordenador y las convierte en un patrón de bits que el procesador de la computadora puede utilizar para realizar sus operaciones básicas. Se puede llamar estas instrucciones como lenguaje ensamblador.
fuente: http://lalibretadelgato.blogspot.com/2014/03/amasando-ensamblador.html
Funciones del ensamblador:
  • Encuentra ubicaciones de la memoria con etiquetas.
  • Traduce cada sentencia de ensamblado combinado con la instrucción númerica
  • Generar archivo de salida, llamado archivo de objeto.

Cargador

La funcionalidad del cargador es parte del sistema operativo, es un componente que localiza un programa dado en una sección de almacenamiento fuera de línea (ejemplo, disco duro) y lo carga en algún otro tipo de almacenamiento (por ejemplo, memoria ram). Da al programa control sobre la computadora.
Fuente: http://www.vilecha.com/neo/ps2_linux.html
Funciones del cargador:
  • Validar el programa para requisitos de memoria, permisos, etc.
  • Copie los archivos necesarios, como la imagen del programa o las bibliotecas necesarias, desde el disco en la memoria.
  • Copiar los argumentos de línea de commandos necesarios en la pila
  • Vincular el punto de inicio del programa y enlazar cualquier otra biblioteca requerida
  • Inicializar los registros
  • Ir al punto de inicio del programa en la memoria

Referencias

Comentarios

Entradas populares de este blog

Código BCD

¿Qué es código BCD? El código BCD (decimal codificado, en inglés Binary-Coded Decimal), es una representación de números decimales en el sistema binario, lo cual cada dígito decimal es una codificación con secuencia de 4 bits, con esta representación se puede ver la relación que existe entre un número decimal y ese número en codificación binaria. Este sistema de numeración es ponderado, lo cual quiere decir que cada posición de una secuencia de dígitos obtiene cierto valor.  Esta representación llega a utilizar 4 dígitos binarios para representar 0 al 9. Para poder el representar el equivalente se pone el valor 1 donde se ocupa y 0 donde no se ocupa, con 4 dígitos, se pueden representar 16 números (0000-1111), pero en el código BCD, sólo se usan diez de ellos, las 6 combinaciones que no se emplean (1010, 1011, 1100, 1101, 1110 y 1111) no son válidas en el código BCD.  (Ver imagen 1) Imagen 1: números decimales respresentados en BCD Ejemplo 1   En el ejemplo 1 se

Obtener el residuo: operación módulo en ensamblador

 Para este blog quisiera hablar de un algoritmo que encontré y me sirvió para la tarea que me habían dejado. El algoritmo que encontré saca el residuo que se obtiene de una división, osea hace la operación módulo. El residuo es algo que durante el colegio no le tome importancia y me sorprende la importancia que tiene en el ámbito de la programación. Un ejemplo donde se utiliza el residuo en la programación es cuando el programador quiere obtener el último dígito de algún número.  La operación de módulo encuentra el residuo que queda después  de aplicar una división. (Ejemplos en la ilustración 1) Ilustración 1. Ejemplo de divisiones que dejan residuo Muchos lenguajes para aplicar el módulo de dos números funciona simplemente utilizando el signo "%" en el medio de los dos números, otros ponen "mod" en medio de los dos números. Sin embargo en algunos tipos  de lenguajes ensamblador no existe una forma tan directa y fácil para obtener el residuo de una divisió

Sucesión de Fibonacci: código ensamblador

En este blog, me gustaría dar un resumen comprensible sobre una sucesión interesante e infinita, hablo de la sucesión de Fibonacci. Es fundamental llegar a programar esta sucesión cuando eres estudiante de ingeniería de computación, ya que es un buen ejercicio para cuando se esta aprendiendo recursividad. Funcionalidades recursivas fue, es y será siempre una herramienta primordial para la creación de programas. Imagen 1. Sucesión de Fibonacci, sitio web: gutl.jovenclub.cu/python-y-la-sucesion-de-fibonacci La sucesión de Fibonacci Primero que todo, esta aportación de la matemática de parte de Leonardo De Pisa   surge de un problema que propuso  Liber Abaci, lo cual el problema consistía en:  " ¿Cuántas parejas de conejos conseguiremos en un año si empezamos con una pareja de conejos que produce cada mes otra pareja que a su vez procrea a los dos meses de vida? " Entonces a partir de ese problema, la sucesión de Fibonacci consta de siempre sumar los dos últimos