Ensamblador y Ligador a Utilizar

download Ensamblador y Ligador a Utilizar

of 3

description

enlazadores

Transcript of Ensamblador y Ligador a Utilizar

Resumen del 2.1. Ensamblador (y ligador) a utilizar.

Ensamblador. El lenguaje ensamblador es un lenguaje de bajo nivel que se comunica directamente con el hardware de la mquina. El termino ensamblador se refiere a un tipo de programa informtico que se encarga de traducir un fichero fuente escrito en un lenguaje ensamblador, a un fichero objeto que contiene cdigo mquina, ejecutable directamente por el microprocesador. El programa lee el fichero escrito en lenguaje ensamblador y sustituye cada uno de los cdigos nemotcnicos que aparecen por su cdigo de operacin correspondiente en sistema binario para la plataforma que se eligi como destino en las opciones especificas del ensamblador. Caractersticas1. El cdigo escrito en lenguaje ensamblador posee una cierta dificultad de ser entendido ya que su estructura se acerca al lenguaje mquina, es decir, es un lenguaje de bajo nivel.1. El lenguaje ensamblador es difcilmente portable, es decir, un cdigo escrito para un microprocesador, puede necesitar ser modificado, para poder ser usado en otra mquina distinta. Al cambiar a una mquina con arquitectura diferente, generalmente es necesario reescribirlo completamente.1. Con el lenguaje ensamblador se tiene un control muy preciso de las tareas realizadas por un microprocesador por lo que se pueden crear segmentos de cdigo difciles y/o muy ineficientes de programar en un lenguaje de alto nivel, ya que, entre otras cosas, en el lenguaje ensamblador se dispone de instrucciones del CPU que generalmente no estn disponibles en los lenguajes de alto nivel.

Podemos distinguir entre dos tipos de ensambladores: Ensambladores modulares 32 bits o de alto nivel, son ensambladores que aparecieron como respuesta a una nueva arquitectura de procesadores de 32 bits, muchos de ellos teniendo compatibilidad hacia atrs pudiendo trabajar con programas con estructuras d 16 bits. Ensambladores bsicos. Son de muy bajo nivel, y su tarea consiste bsicamente en ofrecer nombres simblicos a las distintas instrucciones, parmetros y cosas tales como los modos. Un ligador, es un programa que enlaza todos los programas o mdulos obteniendo lo que denominamos programa ejecutable. Es un programa que enlaza distintos mdulos o programas que poseen subprogramas. Adems incorporan las denominadas rutinas de libreras en caso de solicitarlas el propio programa.

La generacin de un mdulo ejecutable a partir de una coleccin de procedimientos traducidos independientemente requiere un ligador. Los editores ligados pueden efectuar varias funciones ltimas adems de la simple preparacin de un programa objeto para su ejecucin estos tambin se pueden utilizar para construir paquetes de subrutinas u otras cosas secciones que suelen utilizar juntas. Esto puede ser til a tratar con bibliotecas de subrutinas que manejan lenguajes de programacin de alto nivel. Comparados con los cargadores de ligadores los editores de ligado en general tienden a ofrecer mayor flexibilidad y control con el correspondiente incremento de complejidad y sobrecarga.Su tarea principal del enlazador es resolver referencias externas que lleva a cabo la siguiente etapa del proceso de traduccin enlazando los mdulos ensambladores y los acervos para formar un programa completo. En algunos sistemas el cargador simplemente copia el programa ejecutable a las posiciones de memorias apropiadas y enlazar cdigo intermedio compilado independientemente en un solo mdulo de carga resolviendo las diferencias entre Tokens.Al construir un programa algunos de sus mdulos pueden colocarse en el mismo mdulo fuente y ensamblarse juntos, otros pueden estar en mdulos diferentes y ser ensamblados separadamente. En cualquier caso, los mdulos objeto resultantes, algunos de los cuales pueden estar agrupados en libreras, deben ser enlazados para formar el mdulo de carga, antes de que se pueda ejecutar el programa. Adems de dar como salida el mdulo de carga, el linker o enlazador imprime un mapa de memoria que indica donde sern cargados los mdulos objeto en la memoria. Despus de crearse el mdulo de carga, ste es cargado por el cargador en la memoria del ordenador y comienza la ejecucin. Para linkar con TASM escribimos: tlink /v nombre Tras esto se nos crear el fichero ejecutable (.exe o .com) que el sistema operativo se encargar de cargar en memoria cuando lo ejecutemos. De nuevo, la extensin no es necesaria ponerla y el parmetro /v slo es til para el Turbo Debugger.