MEcatronica
Fhersho9223 de Enero de 2014
8.318 Palabras (34 Páginas)230 Visitas
Importancia del lenguaje ensamblador
El lenguaje ensamblador es la forma más básica de programar un microprocesador para que éste sea capaz de realizar las tareas o los cálculos que se le requieran.
El lenguaje ensamblador es conocido como un lenguaje de bajo nivel, esto significa que nos permite controlar el 100 % de las funciones de un microprocesador, así como los periféricos asociados a éste.
A diferencia de los lenguajes de alto nivel, por ejemplo "Pascal", el lenguaje ensamblador no requiere de un compilador, esto es debido a que las instrucciones en lenguaje ensamblador son traducidas directamente a código binario y después son colocadas en memoria para que el microprocesador las tome directamente.
Aprender a programar en lenguaje ensamblador no es fácil, se requiere un cierto nivel de conocimiento de la arquitectura y organización de las computadoras, además del conocimiento de programación en algún otro lenguaje
Ventajas del lenguaje ensamblador:
• Velocidad de ejecución de los programas
• Mayor control sobre el hardware de la computadora
Desventajas del lenguaje ensamblador:
• Repetición constante de grupos de instrucciones
• No existe una sintaxis estandarizada
• Dificultad para encontrar errores en los programas (bugs)
Historia de los procesadores
Con la aparición de los circuitos integrados, la posibilidad de reducir el tamaño de algunos dispositivos electrónicos se vio enormemente favorecida. Los fabricantes de controladores integrados, calculadoras y algunos otros dispositivos comenzaron a solicitar sistemas integrados en una sola pastilla, esto dio origen a la aparición de los microprocesadores.
Microprocesadores de 4 bits
En 1971, una compañía que se dedicaba a la fabricación de memorias electrónicas lanzó al mercado el primer microprocesador del mundo. Este microprocesador fue el resultado de un trabajo encargado por una empresa que se dedicaba a la fabricación de calculadoras electrónicas. El 4004 era un microprocesador de 4 bits capaz de direccionar 4096 localidades de memoria de 4 bits de ancho. Este microprocesador contaba con un conjunto de 45 instrucciones y fue ampliamente utilizado en los primeros videojuegos y sistemas de control.
Microprocesadores de 8 bits
Con la aparición de aplicaciones más complejas para el microprocesador y el gran éxito comercial del 4004, Intel decidió lanzar al mercado un nuevo microprocesador, el 8008, éste fue el primer microprocesador de 8 bits. Las características de este microprocesador fueron:
• Capacidad de direccionamiento de 16 Kb
• Memoria de 8 bits
• Conjunto de 48 instrucciones
Este microprocesador tuvo tanto éxito, que en cosa de dos años su capacidad de proceso fue insuficiente para los ingenieros y desarrolladores, por lo cual en 1973 se liberó el 8080. Este microprocesador fue una versión mejorada de su predecesor y las mejoras consistieron en un conjunto más grande de instrucciones, mayor capacidad de direccionamiento y una mayor velocidad de procesamiento.
Finalmente, en 1977, Intel anunció la aparición del 8085. Este era el último microprocesador de 8 bits y básicamente idéntico al 8080. Su principal mejora fue la incorporación del reloj temporizador dentro de la misma pastilla.
Microprocesadores de 16 bits
En 1978, Intel lanzó al mercado el 8086 y un poco más tarde el 8088. Estos dos microprocesadores contaban con registros internos de 16 bits, tenían un bus de datos externo de 16 y 8 bits respectivamente y ambos eran capaces de direccionar 1Mb de memoria por medio de un bus de direcciones de 20 líneas.
Otra característica importante fue que estos dos microprocesadores eran capaces de realizar la multiplicación y la división por hardware, cosa que los anteriores no podían.
Finalmente apareció el 80286. Este era el último microprocesador de 16 bits, el cual era una versión mejorada del 8086. El 286 incorporaba una unidad adicional para el manejo de memoria y era capaz de direccionar 16Mb en lugar de 1Mb del 8086.
Microprocesadores de 32 bits
El 80386 marco el inicio de la aparición de los microprocesadores de 32 bits. Estos microprocesadores tenían grandes ventajas sobre sus predecesores, entre las cuales se pueden destacar: direccionamiento de hasta 4Gb de memoria, velocidades de operación más altas, conjuntos de instrucciones más grandes y además contaban con memoria interna (caché) de 8Kb en las versiones más básicas.
Del 386 surgieron diferentes versiones, las cuales se listan a continuación.
Modelo Bus de Datos Coprocesador matemático
80386DX 32 Si
80386SL 16 No
80386SX 16 No
80486SX 32 No
80486DX 32 Si
Terminales del microprocesador
En esta sección se realizará una breve descripción del conjunto de terminales del microprocesador más representativo de la familia 80x86.
El microprocesador 8086 puede trabajar en dos modos diferentes: el modo mínimo y el modo máximo. En el modo máximo el microprocesador puede trabajar en forma conjunta con un microprocesador de datos numérico 8087 y algunos otros circuitos periféricos. En el modo mínimo el microprocesador trabaja de forma más autónoma al no depender de circuitos auxiliares, pero
esto a su vez le resta flexibilidad.
En cualquiera de los dos modos, las terminales del microprocesador se pueden agrupar de la siguiente forma:
• Alimentación
• Reloj
• Control y estado
• Direcciones
• Datos
El 8086 cuenta con tres terminales de alimentación: tierra (GND) en las terminales 1 y 20 y Vcc=5V en la terminal 40.
En la terminal 19 se conecta la señal de reloj, la cual debe provenir de un generador de reloj externo al microprocesador.
El 8086 cuenta con 20 líneas de direcciones (al igual que el 8088). Estas líneas son llamadas A0 a A19 y proporcionan un rango de direccionamiento de 1MB.
Para los datos, el 8086 comparte las 16 líneas más bajas de sus líneas de direcciones, las cuales son llamadas AD0 a AD15. Esto se logra gracias a un canal de datos y direcciones multiplexado.
En cuanto a las señales de control y estado tenemos las siguientes:
La terminal MX/MN controla el cambio de modo del microprocesador.
Las señales S0 a S7 son señales de estado, éstas indican diferentes situaciones acerca del estado del microprocesador.
La señal RD en la terminal 32 indica una operación de lectura.
En la terminal 22 se encuentra la señal READY. Esta señal es utilizada por los diferentes dispositivos de E/S para indicarle al microprocesador si se encuentran listos para una transferencia.
La señal RESET en la terminal 21 es utilizada para reinicializar el microprocesador.
La señal NMI en la terminal 17 es una señal de interrupción no enmascarable, lo cual significa que no puede ser manipulada por medio de software.
La señal INTR en la terminal 18 es también una señal de interrupción, la diferencia radica en que esta señal si puede ser controlada por software. Las interrupciones se estudian más adelante.
La terminal TEST se utiliza para sincronizar al 8086 con otros microprocesadores en una configuración en paralelo.
Las terminales RQ/GT y LOCK se utilizan para controlar el trabajo en paralelo de dos o mas microprocesadores.
La señal WR es utilizada por el microprocesador cuando éste requiere realizar alguna operación de escritura con la memoria o los dispositivos de E/S.
Las señales HOLD y HLDA son utilizadas para controlar el acceso al bus del sistema.
Diagrama de componentes internos
Descripción de los componentes
La figura 2 muestra la estructura interna del microprocesador 8086 con base en su modelo de programación. El microprocesador se divide en dos bloques principales: la unidad de interfaz del bus y la unidad de ejecución. Cada una de estas unidades opera de forma asíncrona para maximizar el rendimiento general del microprocesador.
Unidad de ejecución
Este elemento del microprocesador es el que se encarga de ejecutar las instrucciones. La unidad de ejecución comprende el conjunto de registros de propósito general, el registro de banderas y la unidad aritmético-lógica.
Unidad de interfaz de bus
Esta unidad, la cual se conoce como BIU (Bus Interface Unit), procesa todas las operaciones de lectura/escritura relacionadas con la memoria o con dispositivos de entrada/salida, provenientes de la unidad de ejecución. Las instrucciones del programa que se está ejecutando son leídas por anticipado por esta unidad y almacenadas en la cola de instrucciones, para después ser transferidas a la unidad de ejecución.
Unidad aritmético-lógica
Conocida también como ALU, este componente del microprocesador es el que realmente realiza las operaciones aritméticas (suma, resta, multiplicación y división) y lógicas (and, or, xor, etc.) que se obtienen como instrucciones de los programas.
Buses internos (datos y direcciones)
Los buses internos son un conjunto de líneas paralelas (conductores) que interconectan las diferentes partes del microprocesador.
Existen dos tipos principales: el bus de datos y el bus de direcciones. El bus de datos es el encargado de transportar los datos entre las distintas partes del microprocesador; por otro lado, el bus de direcciones se encarga de transportar las direcciones para que los datos puedan ser introducidos o extraídos de la memoria o dispositivos de entrada y salida.
Cola de instrucciones
La
...