# Intel 8085

O Intel 8085 foi um microprocessador de 8 bits produzido pela Intel em meados dos anos 1970. Ele era compatível a nível binário com o popular Intel 8080, mas precisava de menos hardware de suporte, permitindo assim a construção de sistemas mais simples e menos dispendiosos.
O sistema tem todas as instruções do 8080 acrescido de mais duas, (RIM e SIM). Com isso, os softwares do 8080 são totalmente compatíveis com o processador 8085.
O "5" no número do modelo originou-se do facto de que o 8085 necessitava de um suprimento de força de somente +5 volts (V) em vez das tensões de +5V, -5V e +12V exigidas pelo 8080. Ambos os processadores foram utilizados em computadores executando o sistema operativo CP/M e o 8085 foi posteriormente aproveitado como microcontrolador (particularmente pela sua característica de redução de componentes auxiliares). Ambos os projectos foram eclipsados pelo Zilog Z80, que lhes era compatível, mas muito mais eficiente, na explosão do mercado de computadores domésticos em meados dos anos 1980.

## Configuração

* processador
* 2k bytes de EPROM ou ROM
* 256 bytes de RAM
* 1 timer
* 3 entradas de interrupção
* 38 linhas de E/S

## Registradores

* Unidade "Controle de Interrupção"
Unidade responsável pelo tratamento das 5 interrupções externas do 8085. Essas interrupções são vetoradas, o que significa que há um endereço fixo, pré-definido, para cada uma (RST n salta para a posição de memória 8 vezes n: RST 5.5 = 44 10 = 2Ch; RST 6.5 = 34h; RST 7.5 = 3Ch.). As interrupções RST 5.5, RST 6.5 e RST 7.5 podem ser mascaradas, ou seja, elas podem ser bloqueadas via "software". Já a interrupção TRAP não pode ser bloqueada e é a interrupção de maior prioridade do 8085. Ela normalmente é ativada quando há problemas de falta de energia, para um desligamento seguro do microprocessador. A interrupção INTR, na verdade, é um canal para expansão da capacidade de interrupção. Através desse canal um Circuito Integrado (CI) especial (Exemplo: CI 8259) é conectado ao 8085, de modo a permitir um número maior de interrupções. O sinal INTA\ faz parte da comunicação entre o 8085 e o CI usado para expansão da capacidade de interrupção.
* Unidade "Controle de Entrada/Saída Serial"
É através dessa unidade que o microprocessador recebe e envia dados de forma serial, ou seja, bit a bit, ao invés de um byte por vez. O pino SID (Serial Input Data) é usado para a entrada de dados de forma serial e o pino SOD (Serial Output Data) é usado para a saída de dados de forma serial.
* Unidade "Temporização e Controle"
Esta unidade é responsável por gerar todos os sinais de controle do 8085, tais como os sinais de leitura (RD\) e escrita (WR\) de memória, os sinais de liberação de barramento para um periférico (HLDA) e o sinal de habilitação de endereço para um periférico (ALE). Todas as unidades internas do 8085 são controladas por esta unidade, que contém, dentre outros, um contador em anel para sincronização da operação de todas as unidades do 8085. Os sinais de controle para outras unidades são enviados após decodificação das instruções vindas do Registrador de Instruções (IR). Recebe ainda sinais do registrador de Flags e da unidade de interrupções.
* Unidade "Unidade Lógico-Aritmética (ULA ou ALU)"
É responsável por todo o processamento realizado na CPU (execução de instruções aritméticas e lógicas). É controlada por sinais internos emitidos pela Unidade de Controle. Tem como entrada os registradores A (Acumulador) e TEMP (Temporário). É responsável pela sinalização de status das operações (FLAGS). É um registrador de 8 bits.
* Registrador "Acumulador"
É o principal registrador da CPU. É utilizado como Buffer temporário de entrada da Unidade Lógica e Aritmética (ALU ou ULA). Freqüentemente é o registrador de entrada ou saída da CPU. É utilizado implicitamente na maioria das instruções. É um registrador de 8 bits, o que permite trabalhar com números sem sinal de 0 a 255 e números com sinal de -128 a +127. O resultado das operações resultantes da ULA é enviado para o Acumulador.
* Registrador "TEMP"
É um registrador auxiliar usado para a entrada de dados da Unidade Lógico-Aritmética. Os dados desse registrador são enviados para a ULA juntamente com os dados do Acumulador.
* Registrador "Flip-flops dos flags"
É também conhecido como registrador F (de Flags), ou registrador PSW (Program Status Word) É um registrador de 8 bits (mas somente 5 bits são utilizados) que armazena o estado da última operação realizada na ULA.