Intel 8085

Compartir Imprimir Citar
Microprocesador de 8 bits por Intel

El Intel 8085 ("ochenta-ochenta-cinco") es un microprocesador de 8 bits producido por Intel y presentado en marzo de 1976. Es compatible en software binario con el más famoso Intel 8080 con solo dos instrucciones menores agregadas para admitir sus funciones adicionales de interrupción y entrada/salida en serie. Sin embargo, requiere menos circuitos de soporte, lo que permite construir sistemas de microcomputadoras más simples y menos costosos. El "5" en el número de pieza destacó el hecho de que el 8085 usa una sola fuente de alimentación de +5 voltios (V) mediante el uso de transistores de modo de agotamiento, en lugar de requerir los suministros de +5 V, −5 V y +12 V que necesita el 8080. Esta capacidad coincidía con la del Z80 de la competencia, un popular CPU derivado del 8080 presentado el año anterior. Estos procesadores podrían usarse en computadoras que ejecutan el sistema operativo CP/M.

El 8085 se suministra en un paquete DIP de 40 pines. Para maximizar las funciones en los pines disponibles, el 8085 utiliza un bus de dirección/datos multiplexados (AD0-AD7). Sin embargo, un circuito 8085 requiere un latch de dirección de 8 bits, por lo que Intel fabricó varios chips de soporte con un latch de dirección incorporado. Estos incluyen el 8755, con un latch de dirección, 2 KB de EPROM y 16 pines de E/S, y el 8155 con 256 bytes de RAM, 22 pines de E/S y un temporizador/contador programable de 14 bits. El bus de direcciones/datos multiplexado redujo el número de pistas de PCB entre el 8085 y dichos chips de memoria y E/S.

Tanto el 8080 como el 8085 fueron eclipsados por el Zilog Z80 para computadoras de escritorio, que se hizo cargo de la mayor parte del mercado de computadoras CP/M, así como una parte del floreciente mercado de computadoras domésticas a principios y mediados de -1980.

El 8085 tuvo una larga vida como controlador, sin duda gracias a su E/S serial integrada y cinco interrupciones priorizadas, posiblemente características similares a las de un microcontrolador que la CPU Z80 no tenía. Una vez diseñado en productos como el controlador DECtape II y el terminal de video VT102 a fines de la década de 1970, el 8085 sirvió para nuevas producciones durante la vida útil de esos productos. Por lo general, esto era más largo que la vida útil del producto de las computadoras de escritorio.

Intel 8085A CPU muere

Descripción

i8085 microarquitectura
i8085 pinout

El 8085 es un diseño convencional de von Neumann basado en el Intel 8080. A diferencia del 8080, no multiplexa señales de estado en el bus de datos, sino que el bus de datos de 8 bits se multiplexa con los ocho bits inferiores del bus de 16 bits. bus de dirección de bits para limitar el número de pines a 40. Las señales de estado son proporcionadas por pines de señal de control de bus dedicados y dos pines de ID de estado de bus dedicados llamados S0 y S1. El pin 40 se usa para la fuente de alimentación (+5 V) y el pin 20 para tierra. El pin 39 se utiliza como pin de retención. El procesador fue diseñado usando circuitos nMOS, y el posterior "H" Las versiones se implementaron en el proceso nMOS mejorado de Intel llamado HMOS II ('MOS de alto rendimiento'), desarrollado originalmente para productos de RAM estática rápida. Solo se necesita una fuente de alimentación de 5 voltios, como los procesadores de la competencia ya diferencia del 8080. El 8085 utiliza aproximadamente 6500 transistores.

El 8085 incorpora las funciones del 8224 (generador de reloj) y el 8228 (controlador del sistema) en chip, aumentando el nivel de integración. Una desventaja en comparación con diseños contemporáneos similares (como el Z80) es el hecho de que los buses requieren demultiplexación; sin embargo, los pestillos de dirección en los chips de memoria Intel 8155, 8355 y 8755 permiten una interfaz directa, por lo que un 8085 junto con estos chips es casi un sistema completo.

El 8085 tiene extensiones para admitir nuevas interrupciones, con tres interrupciones vectoriales enmascarables (RST 7.5, RST 6.5 y RST 5.5), una interrupción no enmascarable (TRAP) y una interrupción con servicio externo (INTR). Cada una de estas cinco interrupciones tiene un pin separado en el procesador, una característica que permite que los sistemas simples eviten el costo de un controlador de interrupción separado. La interrupción RST 7.5 se activa por borde (bloqueada), mientras que RST 5.5 y 6.5 son sensibles al nivel. Todas las interrupciones son habilitadas por la instrucción EI y deshabilitadas por la instrucción DI. Además, las instrucciones SIM (Establecer máscara de interrupción) y RIM (Leer máscara de interrupción), las únicas instrucciones del 8085 que no son del diseño del 8080, permiten enmascarar individualmente cada una de las tres interrupciones RST enmascarables. Los tres están enmascarados después de un reinicio normal de la CPU. SIM y RIM también permiten leer el estado de máscara de interrupción global y los tres estados de máscara de interrupción RST independientes, leer los estados de interrupción pendiente de esas mismas tres interrupciones, restablecer el flip-flop de pestillo de activación RST 7.5 (cancelando la interrupción pendiente sin repararla), y los datos en serie se enviarán y recibirán a través de los pines SOD y SID, respectivamente, todo bajo el control del programa e independientemente entre sí.

SIM y RIM se ejecutan cada uno en cuatro ciclos de reloj (estados T), lo que permite muestrear SID y/o alternar SOD considerablemente más rápido de lo que es posible alternar o muestrear una señal a través de cualquier E/S o puerto asignado a la memoria, p.ej. uno de los puertos de un 8155. (De esta manera, SID se puede comparar con el pin SO ["Set Overflow"] de la CPU 6502 contemporánea al 8085).

Al igual que el 8080, el 8085 puede acomodar memorias más lentas a través de estados de espera generados externamente (pin 35, READY) y tiene provisiones para acceso directo a memoria (DMA) usando señales HOLD y HLDA (pines 39 y 38). Una mejora con respecto al 8080 es que el 8085 puede controlar un cristal piezoeléctrico conectado directamente a él, y un generador de reloj integrado genera señales de reloj de dos fases de gran amplitud interna a la mitad de la frecuencia del cristal (un cristal de 6,14 MHz produciría un reloj de 3,07 MHz, por ejemplo). El reloj interno está disponible en un pin de salida, para controlar dispositivos periféricos u otras CPU en sincronía de bloqueo con la CPU desde la que se emite la señal. El 8085 también puede sincronizarse con un oscilador externo (lo que hace factible usar el 8085 en sistemas multiprocesador síncronos que usan un reloj común para todo el sistema para todas las CPU, o para sincronizar la CPU con una referencia de tiempo externa, como la de un fuente de video o una referencia de tiempo de alta precisión).

El 8085 es un seguimiento binario compatible del 8080. Admite el conjunto de instrucciones completo del 8080, con exactamente el mismo comportamiento de instrucción, incluidos todos los efectos en los indicadores de la CPU (excepto la operación AND/ANI, que establece la bandera AC de manera diferente). Esto significa que la gran mayoría del código objeto (cualquier imagen de programa en ROM o RAM) que se ejecuta con éxito en el 8080 puede ejecutarse directamente en el 8085 sin traducción ni modificación. (Las excepciones incluyen el código de tiempo crítico y el código que es sensible a la diferencia antes mencionada en la configuración del indicador AC o a las diferencias en el comportamiento de la CPU no documentado). el MOV r,r' instrucción, son un ciclo de reloj más rápido, pero las instrucciones que implican operaciones de 16 bits, incluidas las operaciones de pila (que aumentan o disminuyen el registro SP de 16 bits) generalmente un ciclo más lento. Por supuesto, es posible que el 8080 y/o el 8085 real difieran de las especificaciones publicadas, especialmente en detalles sutiles. (No ocurre lo mismo con el Z80). Como ya se mencionó, solo las instrucciones SIM y RIM eran nuevas para el 8085.

Modelo de programación

El procesador tiene siete registros de 8 bits accesibles para el programador, llamados A, B, C, D, E, H y L, donde A también se conoce como el acumulador. Los otros seis registros se pueden usar como registros de bytes independientes o como tres pares de registros de 16 bits, BC, DE y HL (o B, D, H, como se menciona en los documentos de Intel), según la instrucción particular. Algunas instrucciones usan HL como un acumulador (limitado) de 16 bits. Al igual que en el 8080, se puede acceder al contenido de la dirección de memoria apuntada por HL como un pseudo registro M. También tiene un contador de programa de 16 bits y un puntero de memoria de pila de 16 bits (reemplazando el 8008's interno). pila). Instrucciones como PUSH PSW, POP PSW afectan la palabra de estado del programa (acumulador y banderas). El acumulador almacena los resultados de las operaciones aritméticas y lógicas, y los bits de registro de las banderas (señal, cero, acarreo auxiliar, paridad y banderas de acarreo) se establecen o borran de acuerdo con los resultados de estas operaciones. El indicador de signo se establece si el resultado tiene un signo negativo (es decir, se establece si se establece el bit 7 del acumulador). La bandera auxiliar o de medio acarreo se establece si se produce un traspaso del bit 3 al bit 4. El indicador de paridad se establece en 1 si la paridad (número de 1 bits) del acumulador es par; si es impar, se borra. El indicador cero se establece si el resultado de la operación fue 0. Por último, el indicador de acarreo se establece si se produjo un remanente del bit 7 del acumulador (el MSB).

Comandos/instrucciones

Como en muchos otros procesadores de 8 bits, todas las instrucciones están codificadas en un solo byte (incluidos los números de registro, pero excluyendo los datos inmediatos), por simplicidad. Algunos de ellos van seguidos de uno o dos bytes de datos, que pueden ser un operando inmediato, una dirección de memoria o un número de puerto. Un NOP "sin operación" existe la instrucción, pero no modifica ninguno de los registros o banderas. Al igual que los procesadores más grandes, tiene instrucciones CALL y RET para llamadas y devoluciones de procedimientos de varios niveles (que se pueden ejecutar condicionalmente, como saltos) e instrucciones para guardar y restaurar cualquier par de registros de 16 bits en la pila de la máquina. También hay ocho instrucciones de llamada de un byte (RST) para subrutinas ubicadas en las direcciones fijas 00h, 08h, 10h,...,38h. Estos están destinados a ser suministrados por hardware externo para invocar una rutina de servicio de interrupción correspondiente, pero también se emplean a menudo como llamadas rápidas al sistema. Una instrucción sofisticada es XTHL, que se utiliza para intercambiar el par de registros HL con el valor almacenado en la dirección indicada por el puntero de la pila.

Instrucciones de 8 bits

Todas las operaciones aritméticas y lógicas (ALU) de 8 bits y dos operandos funcionan en el acumulador de 8 bits (el registro A). Para operaciones de dos operandos de 8 bits, el otro operando puede ser un valor inmediato, otro registro de 8 bits o una celda de memoria direccionada por el par de registros de 16 bits HL. Las únicas operaciones ALU de 8 bits que pueden tener un destino diferente al acumulador son las instrucciones de incremento o decremento unario, que pueden operar en cualquier registro de 8 bits o en la memoria direccionada por HL, como para operaciones de 8 bits de dos operandos. Se admite la copia directa entre dos registros cualesquiera de 8 bits y entre cualquier registro de 8 bits y una celda de memoria con dirección HL, utilizando la instrucción MOV. También se puede mover un valor inmediato a cualquiera de los destinos anteriores, usando la instrucción MVI. Debido a la codificación regular de la instrucción MOV (utilizando casi una cuarta parte del espacio total del código de operación), existen códigos redundantes para copiar un registro en sí mismo (MOV B,B, por ejemplo), que son de poco uso, salvo retrasos. Sin embargo, lo que habría sido una copia de la celda direccionada por HL en sí misma (es decir, MOV M,M) codifica la instrucción HLT, deteniendo la ejecución hasta que se produzca un reinicio externo o una interrupción desenmascarada.

Operaciones de 16 bits

Aunque el 8085 es un procesador de 8 bits, tiene algunas operaciones de 16 bits. Cualquiera de los tres pares de registros de 16 bits (BC, DE, HL o SP) se puede cargar con un valor inmediato de 16 bits (usando LXI), incrementado o decrementado (usando INX y DCX) o agregado a HL (usando DAD). LHLD carga HL desde la memoria direccionada directamente y SHLD almacena HL de la misma manera. La operación XCHG intercambia los valores de HL y DE. Agregar HL a sí mismo realiza un desplazamiento aritmético a la izquierda de 16 bits con una instrucción. La única instrucción de 16 bits que afecta cualquier indicador es DAD (que agrega BC, DE, HL o SP a HL), que actualiza el indicador de acarreo para facilitar adiciones de 24 bits o más y desplazamientos a la izquierda. Agregar el puntero de pila a HL es útil para indexar variables en marcos de pila (recursivos). Se puede asignar un marco de pila usando DAD SP y SPHL, y se puede hacer una bifurcación a un puntero calculado con PCHL. Estas capacidades hacen factible compilar lenguajes como PL/M, Pascal o C con variables de 16 bits y producir código de máquina 8085. Las operaciones lógicas de resta y bit a bit en 16 bits se realizan en pasos de 8 bits. Las operaciones que deben implementarse mediante código de programa (bibliotecas de subrutinas) incluyen comparaciones de enteros con signo, así como multiplicaciones y divisiones.

Instrucciones no documentadas

Dos ingenieros de software, Wolfgang Dehnhardt y Villy M. Sorensen, descubrieron varias instrucciones y banderas no documentadas en el proceso de desarrollo de un ensamblador 8085. Estas instrucciones utilizan operandos de 16 bits e incluyen operaciones de carga y almacenamiento indirectos de una palabra, una resta, un desplazamiento, una rotación y una compensación.

Esquema de entrada/salida

El 8085 es compatible con E/S tanto con asignación de puerto como con asignación de memoria. Admite hasta 256 puertos de entrada/salida (E/S) a través de instrucciones de entrada/salida dedicadas, con direcciones de puerto como operandos. La E/S mapeada en puertos puede ser una ventaja en procesadores con espacio de direcciones limitado. Durante un ciclo de bus de E/S con asignación de puertos, la CPU emite la dirección de E/S de 8 bits en las mitades inferior y superior del bus de direcciones de 16 bits.

También se puede acceder a los dispositivos diseñados para E/S mapeada en memoria usando las instrucciones LDA (cargar acumulador desde una dirección de 16 bits) y STA (almacenar acumulador en una dirección de 16 bits especificada), o cualquier otra instrucción que tenga operandos de memoria. Un ciclo de transferencia de E/S asignado a la memoria aparece en el bus como un ciclo normal de acceso a la memoria.

Sistema de desarrollo

Intel produjo una serie de sistemas de desarrollo para el 8080 y el 8085, conocidos como el sistema de microprocesador MDS-80. El sistema de desarrollo original tenía un procesador 8080. Más tarde se agregó compatibilidad con 8085 y 8086, incluido ICE (emuladores en circuito). Es una caja de sobremesa grande y pesada, de unos 20" cubo (en el color azul corporativo de Intel) que incluye una CPU, un monitor y una sola unidad de disquete de 8 pulgadas. Posteriormente, se puso a disposición una caja externa con dos unidades de disquete más. Ejecuta el sistema operativo ISIS y también puede operar un emulador y un programador EPROM externo. Esta unidad utiliza la jaula de tarjetas Multibus que fue diseñada solo para el sistema de desarrollo. Se vendía una cantidad sorprendente de soportes para tarjetas y procesadores de repuesto, lo que llevó al desarrollo del Multibus como un producto separado.

El último iPDS es una unidad portátil, de aproximadamente 8" × 16" × 20", con mango. Tiene una pequeña pantalla verde, un teclado incorporado en la parte superior, una unidad de disquete de 5¼ pulgadas y ejecuta el sistema operativo ISIS-II. También puede aceptar un segundo procesador 8085, lo que permite una forma limitada de operación multiprocesador donde ambos procesadores se ejecutan de forma simultánea e independiente. La pantalla y el teclado se pueden cambiar entre ellos, lo que permite ensamblar programas en un procesador (los programas grandes tomaron un tiempo) mientras se editan los archivos en el otro. Tiene una opción de memoria de burbuja y varios módulos de programación, incluidos EPROM, y módulos de programación Intel 8048 y 8051 que se conectan al costado, reemplazando a los programadores de dispositivos independientes. Además de un ensamblador 8080/8085, Intel produjo una serie de compiladores, incluidos los de PL/M-80 y Pascal, y un conjunto de herramientas para vincular y ubicar estáticamente programas para permitir que se graben en EPROM y se utilicen en sistemas integrados..

Un "Kit de diseño del sistema MCS-85" de menor costo (SDK-85) contiene una CPU 8085, una ROM 8355 que contiene un programa de monitoreo de depuración, una RAM 8155 y 22 puertos de E/S, un teclado hexadecimal 8279 y un LED de 7 segmentos de 8 dígitos y un TTY (teletipo) 20 mA interfaz serial de bucle de corriente. Los pads están disponibles para una EPROM 8755 2K×8 más y otra 256 byte RAM 8155 I/O El temporizador/contador se puede agregar opcionalmente. Todas las señales de datos, control y dirección están disponibles en cabezales de doble pin y se proporciona una gran área de creación de prototipos.

Lista de Intel 8085

Número de modeloProceso de tecnologíaNodo de procesoReloj de velocidadRango de temperaturaCalificación actualPower TolerancePaqueteFecha de lanzamientoPrecio USD
8085ANMOS3 micrones3 MHz170 mA± 5%$6,25
P8085AHHMOS II2 micrones3 MHz135 mA± 10%PlásticoJulio/agosto de 1981$4.40
8085-25 MHz
8085A-2NMOS3 micrones5 MHz170 mA± 5%$8.75
P8085AH-2HMOS II2 micrones5 MHz135 mA± 10%PlásticoJulio/agosto de 1981$5.80
P8085AH-1HMOS II2 micrones6 MHzPlásticoJulio/agosto de 1981$12.45
ID80853 MHzIndustrialMarzo/abril de 197938,75 dólares
M8085A3 MHzMilitarMarzo/abril de 1979$110.00
  1. ^ En cantidades de 100 y hasta

Aplicaciones

El procesador 8085 se usó en algunas de las primeras computadoras personales, por ejemplo, la línea TRS-80 Modelo 100 usó un 80C85 (MSM80C85ARS) fabricado por OKI. La versión CMOS 80C85 del procesador NMOS/HMOS 8085 tiene varios fabricantes. En la Unión Soviética, se desarrolló un clon 80C85 con la designación IM1821VM85A (en ruso: ИМ1821ВМ85А) que en 2016 todavía estaba en producción. Algunos fabricantes ofrecen variantes con funciones adicionales, como instrucciones adicionales.

La versión resistente a la radiación del 8085 ha estado en procesadores de datos de instrumentos a bordo para varias misiones de física espacial de la NASA y la ESA en la década de 1990 y principios de la de 2000, incluidas CRRES, Polar, FAST, Cluster, HESSI, Sojourner Mars Rover, y TEMIS. La empresa suiza SAIA utilizó el 8085 y el 8085-2 como CPU de su línea PCA1 de controladores lógicos programables durante la década de 1980.

Pro-Log Corp. colocó el 8085 y el hardware de soporte en una tarjeta de formato de bus STD que contiene CPU, RAM, zócalos para ROM/EPROM, E/S e interfaces de bus externas. La tarjeta de referencia del conjunto de instrucciones incluida utiliza mnemónicos completamente diferentes para la CPU Intel 8085. El producto era un competidor directo de las ofertas de tarjetas Multibus de Intel.

Familia MCS-85

La CPU 8085 es parte de una familia de chips desarrollados por Intel para construir un sistema completo. Muchos de estos chips de soporte también se usaron con otros procesadores. La PC IBM original basada en el procesador Intel 8088 usaba varios de estos chips; las funciones equivalentes en la actualidad las proporcionan los chips VLSI, a saber, el "Southbridge" papas fritas.

RAM estática

Memoria ROM

Controladores de RAM

Periferia

Uso educativo

En muchas escuelas de ingeniería, el procesador 8085 se usa en cursos de introducción a los microprocesadores. Varias empresas ofrecen kits de formación compuestos por una placa de circuito impreso, 8085, y hardware de soporte. Estos kits suelen incluir documentación completa que permite a un estudiante pasar de la soldadura a la programación en lenguaje ensamblador en un solo curso. Además, la arquitectura y el conjunto de instrucciones del 8085 son fáciles de entender para un estudiante. Las versiones de proyectos compartidos de computadoras de placa única basadas en 8085 educativas y de pasatiempo se indican a continuación en la sección Enlaces externos de este artículo.

Simuladores

Los simuladores de software están disponibles para el microprocesador 8085, que permiten la ejecución simulada de códigos de operación en un entorno gráfico.