Objetivos
Interrupções
Interrupções são o meio pelo qual um processador interrompe seu fluxo de execução para dar atenção ou
atender algum chamado de um periférico para um determinado tratamento. Uma vez que esse tratamento foi feito,
o processador retorna para seu fluxo anterior.
As instruções EI(Enable Interrupt) e DI(Disable Interrupt) habilitam e desabilitam o reconhecimento das interrupções respectivamente.
A flag IFF é alterada por essas instruções mencionadas.
VDI - Vetor de Interrupções
O processador 8080 possui 8 locais reservados para armazenar código para tratamento de
interrupções localizados no Vetor De Interrupções entre $0000 a $003F. Esses locais são representados
por RST 0-8. Cada RST possui o tamanho ou espaço de 8 bytes.
Tab. 1: VDI 8080
Nome |
Endereço |
Descrição |
RST 0 |
$0000 |
Reset inicial |
RST 1 |
$0008 |
Uso definido pelo usuário |
RST 2 |
$0010 |
Uso definido pelo usuário |
RST 3 |
$0018 |
Uso definido pelo usuário |
RST 4 |
$0020 |
Uso definido pelo usuário |
RST 5 |
$0028 |
Uso definido pelo usuário |
RST 6 |
$0030 |
Uso definido pelo usuário |
RST 7 |
$0038 |
Uso definido pelo usuário |
O desvio de fluxo de execução de programas para os locais RST acima são feitas utilizando as instruções
RST(Restart) que podem ser chamadas em qualquer local do programa.
Com apenas 8 bytes para armazenar código para lidar com interrupções, normalmente esse espaço das RST
armazenam CALLs para rotinas que tratamento das interrupções.
Interrupções externas devem utilizar um controllador de interrupções para fornecer a instrução RST
que deve ser invocada.
O local RST 0 tem uma aplicação pré-definida que é armazenar código para o reset ou boot do sistema.
Quando um hardware que utiliza o 8080 como processador principal é ligado, o processador precisa buscar
o local onde um programa deve iniciar. O processador sabe disso utilizando o vetor de interrupção no
local RST 0.
Os RST 1-7 devem ser utilizados de acordo com o hardware/computador para o qual foi projetado para utilizar o
8080 como processador. Normalmente são utilizados para receber interrupções de outros periféricos conectados
ao 8080 que não possui nenhum componente interno para gerenciar interrupções, sendo necessário
outros chips.
Exemplo:
RST 1 ; Interrupção de vídeo
RST 2 ; Interrupção de vídeo
O hardware é responsável por providenciar o controle e quais RST devem ser utilizadas quando suas
interrupções são lançadas.
Como exemplo, o chip 8259(Interrupt Controller) da intel pode ser utilizado nesse tipo de situação.
Quando um interrupção é reconhecida pelo 8080, o processador se comporta de acordo com os passos abaixo:
Início de uma RST
- IFF recebe o valor 0 para desabilitar as interrupções
- Salva o endereço da próxima instrução de retorno na Pilha
- O registrador PC recebe o endereço RST0~7 de destino
Ao término da execução da rotina que lida com a interrupção, o 8080 restaura os
dados salvos na pilha e retorna ao fluxo de execução principal. A instrução RTI deve ser utilizada como
última instrução de uma ISR(Interrupt Service Routine).
Fim de uma RST
- IFF recebe valor 1 para habilitar as interrupções
- Restaura o endereço de retorno da Pilha
- Continua fluxo anterior à interrupção
Histórico de atualizações
- 12/12/2024 - revisão 4 - Correções e ajustes pontuais
- 09/09/2024 - revisão 3 - Correção em erros gramaticais, introdução, RST 2 em Tab. 1 e histórico
-
- 30/08/2024 - revisão 2 - Correção em links de objetivos
- 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.