Objetivos
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.
A - Accumulator - Acumulador
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.
B, C, D, E, H e L
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.
BC, DE e HL
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.
Program Counter - Contador de Programa
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.
Stack Pointer - Ponteiro para 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.
F - Flags - Processor Status
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: -
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: -
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: -
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.
IFF - Interrupt Flip-Flop
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.
Histórico de atualizações
- 12/12/2024 - revisão 3 - Correções e ajustes pontuais
- 09/09/2024 - revisão 2 - Correção em erros gramaticais, explicação IFF e tabelas
- 04/10/2023 - revisão 1 - adição de links, correção em layout e navegação
- 08/08/2023 - versão inicial
Os cursos oferecidos nesta página são cursos fornecidos por parceiros. Ao comprar um curso clicando
em seu banner, você está ajudando a manter o projeto TutorialDev vivo. Os sites dos cursos parceiros utilizam cookies.