O 8080 possui ao todo 13 registradores que são dividos em 2 grupos: registradores de 8 e registradores de 16 bits.

Tab. 1: Registradores 8080
8-bits 8-bits 16-bits
A F Par PSW
B C Par B
D E Par D
H L Par H
Registradores de 8-bits

O intel 8080 possui os registradores A,F(Flags), B, C, D, E, H e L que possuem o tamanho de 8-bits tendo seu uso geral com exceção de F(flags).

Registradores de 16-bits

Os registrador de 8-bits mencionados acima podem ser agrupados em pares, formando assim registradores de 16-bits. Esses pares são pré definidos como BC, DE e HL e AF. Os registradores A e F formam o PSW (Processor Status Word) mas não é utilizado como par em instruções, exceto quando salvo na Stack.

Como os registradores residem na memória interna do processador, o acesso para leitura e escrita de dados é muito mais rápido do que utilizar a memória, pois não utiliza o barramento de acesso a RAM que consome mais tempo.

O registrador A é um registrador de 8-bits que é utilizado em operações aritméticas, lógicas, pilha, carregamento e armazenamento de dados. Há instruções específicas que utilizam apenas o registrador A implicitamente.

O 8080 possui 8 registradores B, C, D, E, H e L de 8-bits, que são usados de forma geral para armazenar valores para instrução como aritméticas e outras.

O registrador C é utilizado como contador por algumas instruções específicas sendo de uso geral em quaisquer outras instruções.

Os três pares de registradores de 16-bits podem ser usados como endereços de memória para acesso aos dados em memória e também instruções aritméticas como incremento e decremento para transferência de dados.

Tanto o acesso direto quanto indireto aos dados contidos em memória podem ser acessados utilizando BC, DE e HL. O par HL é mais utilizado para leitura e armazenamento de dados em memória.

O par BC pode ser utilizado como contador em instruções de transferência de dados e os pares DE e HL utilizados como endereços de destino ou origem.

O PC é um registrador de 16-bits que armazena o endereço da próxima instrução que será executada pelo processador. Este registrador é incrementado ou alterado automaticamente à medida que as instruções vão sendo executadas ou instruções de desvio de fluxo e pilha.

Diferente do processador 6502 , o registrador SP no 8080 pode ser configurado para qualquer região de memória. Seu tamanho é de 16-bits e tem como objetivo armazenar o ponteiro/pointer para o topo da pilha onde dados serão salvos e recuperados.

A definição do local inicial do SP é feita via programação ao iniciar um programa. A região onde a pilha pode residir fica a cargo do mapeamento de memória predefinido pelo hardware utilizado.

A pilha do processador 8080 aceita apenas que valores de 16-bits sejam salvos. Os registradores são salvos em pares.

O 8080 possui um grupo de flags para que possamos entender seu status interno durante seu funcionamento. instruções.

A alteração das flags do 8080 são dependentes das instruções. Cada grupo de instruções podem ou não alterar determinadas flags.

Tab. 2: Flags 8080
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
S Z - AC - P - C, Cy
Bit 0: Carry - Cy

A flag C(Carry), pode ser entendida como o "Vai-um ou Vem-um" em operações aritméticas de soma e subtração. Em instrução de deslocamento e rotação de bits, representa os bits mais e menos significativos.

Bit 1: -

Não utilizada sempre 0

Bit 2 : Paridade

Utilizada para armazenar a paridade de um valor contido em um registrador. Se número de bits for par, recebe 1, caso contrário 0.

Bit 3: -

Não utilizada sempre 0

Bit 4: Auxiliar Carry

Possui o mesmo conceito da flag C em operações aritméticas, mas aplicado ao nibble menos significativo de um registrador.

Bit 5: -

Não utilizada sempre 0

Bit 6: Zero

A flag Z(Zero) indica que o valor carregado em um registrador é igual a zero. Se for igual a zero, a flag recebe o valor 1, caso contrário recebe o valor de 0.

Bit 7: Sign

A flag S indica a sinalização de um valor armazenado em um registrador. Se positivo, S recebe valor 0. Caso seja negativo, S recebe o valor 1.

Flag utilizada para habilitar e desabilitar o reconhecimento de interrupções. Quando seu valor é 0, nenhuma interrupção é reconhecida. Quando seu valor é 1, as interrupções são reconhecidas e executadas.

As instruções EI e DI manipulam essa flag habilitando e desabilitando o reconhecimento das interrupções respectivamente.

  1. 12/12/2024 - revisão 3 - Correções e ajustes pontuais
  2. 09/09/2024 - revisão 2 - Correção em erros gramaticais, explicação IFF e tabelas
  3. 04/10/2023 - revisão 1 - adição de links, correção em layout e navegação
  4. 08/08/2023 - versão inicial