arquitectura de computadoras clase2
TRANSCRIPT
Arquitectura de Computadoras y Ensambladores 1
Clase No. 2Universidad de San Carlos de Guatemala
Josue Daniel Pirir Morales1er . Semestre de 2011
El lenguaje ensamblador, o assembler es un lenguaje de programación de bajo nivel para los computadores, microprocesadores, microcontroladores, y otros circuitos integrados programables. Implementa una representación simbólica de los códigos de máquina binarios y otras constantes necesarias para programar una arquitectura dada de CPU y constituye la representación más directa del código máquina específico para cada arquitectura legible por un programador. Esta representación es usualmente definida por el fabricante de hardware, y está basada en los nemónicos que simbolizan los pasos de procesamiento (las instrucciones), los registros del procesador, las posiciones de memoria, y otras características del lenguaje.
Un lenguaje ensamblador es por lo tanto específico a cierta arquitectura de computador física (o virtual). Esto está en contraste con la mayoría de los lenguajes de programación de alto nivel, que, idealmente son portables.
Assembler
El proceso de traducción se realiza en dos fases: Primera fase: “La asociación de dirección de memoria con etiquetas. Este proceso permitirá que los nombres simbólicos y direcciones se conozcan cuando se realicen la traducción de instrucciones”. Segunda fase: “Traducción de las sentencias en lenguaje ensamblador combinando los equivalentes numéricos de los códigos de operación, especificadores de registros y etiquetas en instrucciones correctas”.
Cuando se es necesario utilizar rutinas ya escritas (módulos) almacenadas en librerías, el assembler se vale del montador o linker, el cual combina estos módulos y bibliotecas en un solo fichero ejecutable, resolviendo las referencias a etiquetas externas. El assembler se encarga de proporcionar la lista de etiquetas y de referencias no resueltas, estas dadas por el uso de etiquetas antes de que sean definidas, esto obliga al assembler a realizar la traducción en las dos fase anteriores que de manera sintetizada se entiende que la primera busca todas las etiquetas y segunda genera la traducción. Por su parte el lenguaje ensamblador es un lenguaje escrito a bajo nivel pero con la diferencia con el lenguaje de maquina que utiliza símbolos y no bits lo cual permite memorizar los códigos de operación y las especificaciones de registros, además este lenguaje permite la utilización de etiquetas para identificar a los objetos almacenados en memoria, este lenguaje a su vez se caracteriza por que es la representación de código mas inmediato al lenguaje de maquina y se encarga de la manipulación del hardware del computador.
Ilustración 1: La gráfica siguiente representa como assembler convierte un archivo fuente a un ejecutable, en síntesis: el ensamblador toma un fichero fuente escrito en lenguaje a ensamblador que lo traduce a un fichero objeto que auxiliado por el montador se agregan otros ficheros y bibliotecas y se genera el archivo ejecutable.
Bibliografía
1. http://es.wikipedia.org/wiki/Lenguaje_ensamblador(Leer articulo completo)
2. Estructura y diseño de computadores: Interface circuitería-programación.David A. Patterson, John L. Hennessy, Ramón Canal Carreger. Segunda Edición