Clique sobre os objetivos listados abaixo para navegar até o conteúdo desejado.

  1. Interrupções
  2. VDI - Vetor De Interrupções
  3. Reset - RST 0
  4. RST 1- 7
  5. Fluxo de execução

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.

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
  1. IFF recebe o valor 0 para desabilitar as interrupções
  2. Salva o endereço da próxima instrução de retorno na Pilha
  3. 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
  1. IFF recebe valor 1 para habilitar as interrupções
  2. Restaura o endereço de retorno da Pilha
  3. Continua fluxo anterior à interrupção
  1. 12/12/2024 - revisão 4 - Correções e ajustes pontuais
  2. 09/09/2024 - revisão 3 - Correção em erros gramaticais, introdução, RST 2 em Tab. 1 e histórico
  3. 30/08/2024 - revisão 2 - Correção em links de objetivos
  4. 04/10/2023 - revisão 1 - adição de links, correção em layout e navegação
  5. 08/08/2023 - versão inicial