Está en la página 1de 14

Tabla de contenido

1.1.1._ USO Y APLICACIONES DEL LENGUAJE ENSAMBLADOR ___________________ 3


QU ES EL LENGUAJE ENSAMBLADOR? ________________________________________ 3 USO DEL LENGUAJE ENSAMBLADOR ___________________________________________ 3 APLICACIONES DEL LENGUAJE ENSAMBLADOR ___________________________________ 5

1.1.2._ ESCALABILIDAD DE MICROPROCESADORES ___________________________ 6


Los microprocesadores de 8 bits. ______________________________________________ 6 Los microprocesadores de 16 bits. _____________________________________________ 7 Panorama. ________________________________________________________________ 8

1.1.3._ TIPOS DE LENGUAJE ENSAMBLADOR ________________________________ 9


Ensambladores Cruzados ____________________________________________________ 9 Ensambladores Residentes ___________________________________________________ 9 Macroensambladores ______________________________________________________ 10
Macro Ensamblador IBM __________________________________________________________ 10 Macro Ensamblador de Microsoft ___________________________________________________ 10 Turbo Assembler ________________________________________________________________ 10

Microensambladores ______________________________________________________ 10 Ensambladores de una fase _________________________________________________ 10 Ensambladores de dos fases _________________________________________________ 11

1.1.4._ CLASIFICACION DE MEMORIAS ____________________________________ 11 1.1.5._ UNIDAD DE ENTRADA Y SALIDA ___________________________________ 13


Estructura de Control E/S.___________________________________________________ 13 Modo de interconexin E/S <--> CPU. _________________________________________ 13 E/S CONTROLADA POR PROGRAMA. __________________________________________ 14
26/Agosto/2011

Introduccin

E/S CONTROLADA POR INTERRUPCIONES. _____________________________________ 14 TRATAMIENTO DE INTERRUPCIN. ___________________________________________ 14

Introduccin

1.1._ INTRODUCCION 1.1.1._ USO Y APLICACIONES DEL LENGUAJE ENSAMBLADOR QU ES EL LENGUAJE ENSAMBLADOR? Constituye la representacin ms directa del cdigo mquina especfico para cada arquitectura de computadoras legible por un programador. Utilizado para escribir programas informticos. USO DEL LENGUAJE ENSAMBLADOR Mejorar la eficiencia de una rutina especfica que se ha transformado en un cuello de botella.

Obtener acceso a funciones de bajo nivel del procesador para realizar tareas que no son soportadas por los lenguajes de alto nivel.

Escribir manejadores de dispositivos para comunicarse directamente con hardware especial tales como tarjetas de red.

La manipulacin directa del hardware.

Introduccin

En los programas encajados que almacenan solamente una cantidad pequea de memoria y el dispositivo se piensa para hacer solas tareas del propsito en:

Telfonos

sistemas del carburante para automvil

Los sistemas de la seguridad

sensores

Programadores del juego, permitiendo a los juegos funcionar ms rpidamente.

Introduccin

En tiempo real programas que necesitan la sincronizacin y respuestas exactas, tales como simulaciones, sistemas de navegacin del vuelo, y equipo mdico. El lenguaje ensamblador todava se ensea en la mayora de la informtica y de los programas electrnicos de la ingeniera. Al escribir virus de la computadora, bootloaders, ciertos drivers de dispositivo, u otros artculos muy cerca del hardware o del sistema operativo bajo.

APLICACIONES DEL LENGUAJE ENSAMBLADOR Aplicaciones en la Ingeniera del Software: CUANDO HAY IMPLICADOS GRFICOS Si un programa est dibujando una imagen en la pantalla, tiene que trabajar muy rpido, o la espera sera intolerable.

CUANDO ES NECESARIO TOMAR MUCHAS DECISIONES 5

Introduccin

Esto es a menudo necesario en programas de juegos complejos, tales como las damas o el ajedrez. El programa tiene que intentar y comprobar muchas posibilidades y decidir un movimiento que sea razonable. Sistemas Embebidos: impresoras, cmaras, autos, armas, juguetes, etc. Tiempo Real: en la industria y manufactura, adquisicin datos, control robots Transporte: barcos, aviones, sondas espaciales, etc. Entretenimiento: Graficacin, Multimedia, Cine y Videojuegos DSP (Procesamiento de seal digital (DSP)): Procesamiento de Seales, Voz e Imgenes

1.1.2._ ESCALABILIDAD DE MICROPROCESADORES El microprocesador o simplemente procesador, es el circuito integrado central y ms complejo de una computadora u ordenador; a modo de ilustracin, se le suele asociar por analoga como el "cerebro" de una computadora. El procesador es un circuito integrado constituido por millones de componentes electrnicos integrados. Constituye la unidad central de procesamiento (CPU) de un PC catalogado como microcomputador. Esta unidad central de procesamiento est constituida, esencialmente, por registros, una unidad de control y una unidad aritmtica lgica (ALU), aunque actualmente todo microprocesador tambin incluye una unidad de clculo en coma flotante, (tambin conocida como "co-procesador matemtico"), que permite operaciones por hardware con nmeros decimales, elevando por ende notablemente la eficiencia que proporciona slo la ALU con el clculo indirecto a travs de los clsicos nmeros enteros. Aparece en computadoras de cuarta generacin El microprocesador es la parte de la computadora diseada para llevar acabo o ejecutar los programas. Ejecuta instrucciones que se le dan a la computadora a muy bajo nivel haciendo operaciones lgicas simples, como sumar, restar, multiplicar y dividir. Viene siendo el cerebro de la computadora, el motor, el corazn de esta mquina. Los microprocesadores de 8 bits. Los microprocesadores de 8 bits. Intel desarrollo el 8008, que fue el primer microprocesador de 8 bits; implantado con tecnologa PMOS contaba con 48 instrucciones, poda ejecutar 300,000 operaciones por segundo y direccionaba 16 Kbytes de memoria.

Introduccin

En el ao de 1974 Intel anuncia el microprocesador 8080, implantado con tecnologa NMOS. Este microprocesador tambin direccionaba 8 bits, tenia 78 instrucciones, su velocidad de operacin era 10 veces mayor que la del 8008 y poda direccionar hasta 64 Kbytes de memoria. La compaa Motorola introdujo el 6800, un microprocesador de 8 bits con 62 instrucciones. En 1975, la compaa Mos Technology anuncio dos microprocesadores: el 6501 que era compatible con el 6800, y el 6502, cuyo circuito integrado inclua al 6501 y un circuito que generaba la seal de reloj. En 1976 la compaia Zilog introdujo el Z-80, este nuevo microprocesador de 8 bits, implementado con tecnologa NMOS, tenia un cdigo de 158 instrucciones, incluyendo todas las del 8080 y adems requera un nico voltaje de 5 volts. En 1977, Intel introdujo el 8085, el cual combinaba el 8080, el circuito de reloj y el controlador de sistema en un solo chip. Este microprocesador estaba fabricado con tecnologa NMOS y requera al igual que el Z-80, un nico voltaje de 5 volts Los microprocesadores de 16 bits. Empez a surgir en la dcada de los 80`s. El primero en aparecer fue el 8086 de Intel, adoptado por IBM para la fabricacin de la IBM PC. Despus Motorola introdujo el 68000 cuyos registros internos son de 32 bits. Motorola fabrico microprocesadores derivados del 68000, como el 68020 y el 68030, entre otros destinados a computadoras de mayor desempeo llamadas Workstations. Intel desarrollo el 8088, utilizado por las computadoras IBM XT (en el ao 1981), el 80186, el 80286 empleado en las IBM AT, el 80386, el 80486 y el

Pentium en sus diferentes versiones. Tambin desarrollo un sustituto para el 8088; el 80188. El 80286, surgi al mercado en 1983, utilizado en las computadoras IBM PC AT. En 1985 aparece el 80386 de Intel, utilizado en las computadoras Compaq. Intel fabrico microprocesadores variantes del 80386, como el SX, DX y SL. En 1991 Intel desarrollo el y486, que inclua un bloque de memoria cache y un coprocesador matemtico dentro de la misma pastilla. Tambin hubo variantes de este microprocesador como el 486DX, SX, DX2 y DX4. La principal diferencia entre cada versin es la velocidad de proceso y el voltaje de operacin. 7

Introduccin

En 1993 Intel lanza al mercado la generacin de microprocesadores Pentium, notables por su arquitectura superescalar, su ancho de bus externo de 64 bits y, su velocidad que alcanzaba los 200 Mhz. Las compaas AMD y Cyrix introdujeron los microprocesadores 6X86 y K5 respectivamente. A fines de 1995 apareci el Pentium Pro de Intel, cuya ventaja era tener un mayo nmero de aplicaciones por ciclo de reloj. Con la aparicin de multimedia, Intel desarrollo a finales de 1997 el Pentium MMX (Multimedia eXtensions). Por su parte, AMD desarrolla el microprocesador K6; tambin con funciones especiales para el manejo de multimedia. En 1996, Motorola introdujo su nueva lnea de microprocesadores Power PC, destinados a las computadoras de la serie Macintosh Power PC (en alianza con IBM y Apple Computer). Despus del Power PC, Motorola lanza la lnea de microprocesadores G3. Panorama. 1971: Intel 4004. 19XX: Intel 8008 1978: Intel 8086, Motorola 68000 1979: Intel 8088 1982: Intel 80286, Motorola 68020 1985: Intel 80386, Motorola 68020, AMD80386 1989: Intel 80486, Motorola 68040, AMD80486 1993: Intel Pentium, Motorola 68060, AMD K5, MIPS R10000 1995: Intel Pentium Pro 1997: Intel Pentium II, AMD K6, PowerPC (versiones G3 y G4), MIPS R120007 1999: Intel Pentium III, AMD K6-2 2000: Intel Pentium 4, Intel Itanium 2, AMD Athlon XP, AMD Duron, PowerPC G4, MIPS R14000 2004: Intel Pentium M 2005: Intel Pentium D, Intel Extreme Edition con hyper threading, Intel Core Duo, AMD Athlon 64, AMD Athlon FX. 2006: Intel Core 2 Duo, Intel Core 2 Extreme, AMD Athlon 64 X2 2007: Intel Core 2 Quad, AMD Quad Core 2008: Procesadores Intel y AMD con ms de 8 ncleos

Introduccin

1.1.3._ TIPOS DE LENGUAJE ENSAMBLADOR Ensambladores Cruzados Es aquel que se ejecuta sobre un computador con un procesador diferente de aquel para el que se ensambla el cdigo. Los ensambladores cruzados permiten a un programador desarrollar programas para diferentes sistemas sobre un computador. Sin embargo, excepto en el caso de minicomputadores y grandes computadores que pueden ofrecer un simulador de microprocesador destinatario real, no se puede normalmente probar y depurar el cdigo creado por un ensamblador cruzado sin ejecutarse sobre una maquina real que utilice este procesador. En cualquier caso, siempre se debe utilizar la sintaxis correcta, esto es, cdigos OP, operandos, y as sucesivamente, para el microprocesador para el que el ensamblador cruzado esta diseado. Ej. asMSX es un ensamblador cruzado para MSX [cross-assembler], es decir, un programa que genera archivos binarios para MSX (y para cualquier otra mquina que utilice el microprocesador Z80) desde cualquier plataforma IBM/PC con el sistema operativo Windows (cualquier versin). Como se especifica en la propia documentacin del programa, existen otros muchos ensambladores para MSX, tanto cruzados como nativos para MSX, y cada uno de ellos tiene sus propias caractersticas propias, con sus puntos fuertes y dbiles. asMSX no pretende ser el mejor de ellos, ni siquiera el ms potente, pero quizs s uno de los ms cmodos para programar para MSX. Incorpora un juego creciente de macroinstrucciones destinado a facilitar la tarea del desarrollador para MSX, encargndose por s slo de generar las cabeceras y los formatos necesarios para que el resultado final sea directamente utilizable en un ordenador MSX, sea cual sea la opcin elegida. Para ms informacin, consultar la documentacin que acompaa el programa. Ensambladores Residentes La ventaja de estos ensambladores es que permiten ejecutar inmediatamente el programa; la desventaja es que deben mantenerse en la memoria principal tanto el ensamblador como el programa fuente y el programa objeto. El polo opuesto del ensamblador cruzado es el ensamblador residente, que se ejecuta sobre una maquina que contiene el mismo procesador que el destinatario del cdigo ensamblado. Un ensamblador residente ofrece al programador la ventaja de utilizar una nica maquina para crear, probar, y depurar cdigo. Los ensambladores residentes sobre los primeros microprocesadores fueron algo lentos y restrictivos en caractersticas debido al alto costo de memoria y la lentitud del microprocesador, con la disponibilidad de memoria debajo costo (y consecuentemente grandes memorias disponibles en la mayor parte de los sistemas) y la posibilidad del procesador de direccionar directamente grandes cantidades de memoria, as como de realizar funciones mas rpidas, los ensambladores residentes proporcionan ahora una variedad de caractersticas y velocidad de ensamblaje que anteriormente solo se encontraban en ensambladores cruzados sobre grandes computadores y microcomputadores. 9

Introduccin

Macroensambladores Son ensambladores que permiten el uso de macroinstrucciones (macros). Debido a su potencia, normalmente son programas robustos que no permanecen en memoria una vez generado el programa objeto. Puede variarse complejidad, dependiendo de las posibilidades de definicin y manipulacin de las macroinstrucciones, pero normalmente son programas bastantes complejos, por lo que suelen ser ensambladores residentes. Ejemplos: Macro Ensamblador IBM.- Est integrado por un ensamblador y un macroensamblador. En gran medida su funcionamiento y forma de invocarlo es sumamente similar al de Microsoft. Su forma de uso consiste en generar un archivo fuente en cdigo ASCII, se procede a generar un programa objeto que es ligado y se genera un programa .EXE. Opcionalmente puede recurrirse a la utilera EXE2BIN de MS-DOS para transformarlo a .COM. Es capaz de generar un listado con informacin del proceso de ensamble y referencias cruzadas. Macro Ensamblador de Microsoft.- Dependiendo de la versin, este ensamblador es capaz de soportar el juego de instrucciones de distintos tipos de microprocesadores Intel de la serie 80xx/80x86. En su versin 4.0 este soporta desde el 8086 al 80286 y los coprocesadores 8087 y 80287. Requiere 128KB de memoria y sistema operativo MSDOS v2.0 o superior. Trabaja con un archivo de cdigo fuente creado a partir de un editor y grabado en formato ASCII. Este archivo es usado para el proceso de ensamble y generacin de cdigo objeto. Posteriormente, y con un ligador, es creado el cdigo ejecutable en formato .EXE. Turbo Assembler.- De Borland Intl., es muy superior al Turbo Editassm. Trabaja de la misma forma, pero proporciona una interfaz mucho ms fcil de usar y un mayor conjunto de utileras y servicios. Microensambladores Generalmente, los procesadores utilizados en las computadoras tienen un repertorio fijo de instrucciones, es decir, que el intrprete de las mismas interpretaba de igual forma un determinado cdigo de operacin. El programa que indica al intrprete de instrucciones de la UCP cmo debe actuar se denomina microprograma. El programa que ayuda a realizar este microprograma se llama microensamblador. Existen procesadores que permiten la modificacin de sus microprogramas, para lo cual se utilizan microensambladores. Ensambladores de una fase Estos ensambladores leen una lnea del programa fuente y la traducen directamente para producir una instruccin en lenguaje mquina o la ejecuta si se trata de una pseudoinstruccin. Tambin va construyendo la tabla de smbolos a medida que van apareciendo las definiciones de variables, etiquetas, etc. 10

Introduccin

Debido a su forma de traduccin, estos ensambladores obligan a definir los smbolos antes de ser empleados para que, cuando aparezca una referencia a un determinado smbolo en una instruccin, se conozca la direccin de dicho smbolo y se pueda traducir de forma correcta. Estos ensambladores son sencillos, baratos y ocupan poco espacio, pero tiene el inconveniente indicado. Ensambladores de dos fases Se denominan as debido a que realizan la traduccin en dos etapas. En la primera fase, leen el programa fuente y construyen una tabla de smbolos; de esta manera, en la segunda fase, vuelven a leer el programa fuente y pueden ir traduciendo totalmente, puesto que conocen la totalidad de los smbolos utilizados y las posiciones que se les ha asignado. Estos ensambladores son los ms utilizados en la actualidad. Ejemplo: Ensamblador del 8086.

1.1.4._ CLASIFICACION DE MEMORIAS El programa o secuencia de instrucciones que debe seguir la maquina para realizar el procesamiento de los datos esta almacenado en una parte de la memoria denominada memoria o segmento de instruccin. A travs de un bus de direcciones.

BUS DE DATOS. Se encarga de transmitir informacin entre el CPU, la memoria y los perifricos. Es bidireccional. BUS DE DIRECCIONES: Permite seleccionarla localidad de memoria o el perifrico que el CPU desea accesar. Es unidireccional, la informacin siempre viaja desde el procesador. BUS DE CONTROL: 11

Introduccin

Se encuentran las diferentes seales encargadas de la sincronizacin y control del sistema. Su naturaleza es unidireccional aun cuando existen seales que salen del microprocesador, as como otras que entran al microprocesador. WR (Escritura). RD (Lectura). WAIT (Espera). READ (Listo). RAM (Memoria de Acceso Aleatorio). ROM (Memoria Solo Lectura).

ROM: (Read Only Memory) o memoria de slo lectura tambin permite el acceso directo a cada uno de los elementos que la componen, pero la informacin en ella contenida puede ser leda pero no alterada. Se utiliza principalmente para contener el firmware. RAM: (Random Access Memory) o memoria de acceso aleatorio debe su nombre al hecho de permitir el acceso a cualquiera de las localidades de memoria en forma directa. Su caracterstica ms importante es la de que la informacin contenida en cada una de las localidades puede ser leda y/o alterada. ROM: RAM: EDO RAM (Memoria de Acceso Aleatorio con Salida de Datos Extendidas). D RAM (Memoria Dinmica de Acceso Aleatorio). SD RAM (Memoria Dinmica de Paginacin de Acceso Aleatorio). RD RAM (Memoria Dinmica de Acceso Aleatorio para Tecnologa Rambus). S RAM (Memoria Esttica de Acceso Aleatorio). P ROM (Memoria Programable de solo lectura). EP ROM (Memoria de solo lectura Programable y Borrable). EE ROM (Memoria de Solo Lectura Programable y Borrable Elctricamente). Memoria Flash.

12

Introduccin

1.1.5._ UNIDAD DE ENTRADA Y SALIDA Elemento que proporciona un mtodo de comunicacin eficaz entre el sistema central y el perifrico.

Estructura de Control E/S.

Modo de interconexin E/S <--> CPU. * Buses independientes --> E/S aisladas. * BUS comn pero lneas de control separadas. * BUS nico --> E/S localizada en memoria 13

Introduccin

Tcnicas de Interaccin E/S <--> Sistema. * E/S controlada por programas. * E/S por interrupciones. * Acceso directo a memoria(DMA). E/S CONTROLADA POR PROGRAMA. El CPU esta en pendiente en todo momento(sondeo constante mediante bucles) del estado E/S. * Prdida de tiempo en bucle de espera. * Algunos programas no permiten estar en bucle. * Si varios perifricos muchos problemas. E/S CONTROLADA POR INTERRUPCIONES. Elimina bucles de sondeo, de forma que entre CPU y unidad de E/S existe una lnea de comunicacin Hardware provoca que cuando un perifrico precisa de la atencin de la CPU, la unidad de E/S enva un nivel o flanco de detencin que provoca una interrupcin en la CPU. Esta deja de hacer lo que estaba haciendo y salta a una subrutina (vector interrupcin) de respuesta a dicho perifrico. TRATAMIENTO DE INTERRUPCIN. 1.- Activar el sistema de interrupciones, validando las que sea necesario. 2.- Perifrico activa la interrupcin (PI). 3.- CPU termina la instruccin en curso, salva el PC (Contador de programa) y algunos de los otros registros usados por el programa. 4.- CPU inhibe interrupciones y carga en el PC el vector interrupcin (direccin del programa de respuesta determinada por el fabricante del microprocesador), lo que implica que se salta a ejecutar la respuesta a la interrupcin. 5.- Se informa al perifrico del fin de respuesta para que desactive PI. 6.- Se reactiva el sistema de interrupciones. 7.- Se recupera el PC y los registros se contina con la ejecucin del programa interrumpido. 14

También podría gustarte