Interrupções
5.2.1 Introdução
A transferência de dados do periférico para o microprocessador, que é inicializado pelo
microprocessador, terá lugar quando
• O periférico tiver activado o bit de estado que indica que o dado já está pronto
para ser transferido, e
• O microprocessador tiver descoberto que o bit de estado do periférico foi
activado.
Página 1 de 6
program counter no stack. O microprocessador entra agora na routina de serviço à
interrupção, que pode ser vista como uma subrotina iniciada externamente.
Os dois tipos de interrupção são alimentados à uma porta OR, como mostra a figura
1.2, onde são combinados para gerar um único sinal de interrupção mestre. A
interrupção não-mascarável é alimentada directamente para esta porta enquanto que a
interrupção mascarável atravéz de uma porta AND habilitadora cuja saída é controlada
pelo flip-flop 1 habilitador da interrupção INT.
Página 2 de 6
Este flip-flop 1 é controlado por sinais inicializados pelo programa. O sinal enable
interrupt é gerado por escrever a instrução EI no programa e disable interrupt é gerado
por DI.
Página 3 de 6
No modo 2, um vector deve ser formado apartir do conteúdo do registo I e do dado que
o periférico coloca no barramento de dados.
Inicio
Fetch de instrução e
descodificação
Execução da
instrução
Últim Não
o
c/m
Sim
Existe Não
Interrupçã
o
Sim
c/m: ciclo de máquina
Serviço de
Interrupção
Página 4 de 6
1. Carregar o program counter com um valor predefinido e transferir o conteúdo
original para o stack pointer.
Página 5 de 6
Na técnica Vectoring, a identificação da fonte de interrupção pode ser feita usando a
ligação Daisy-Chain, na qual o sinal de confirmação da interrupção é propagado do
periférico mais prioritário ao menos, parando no primeiro que encontrar activo,
servindo-o e desactivando-o.
5.2. Bibliografia
• B. Holdsworth-Microprocessor Engineering, Butterworths.
• John P. Hayes – Computer Architecture and Organization, second edition,
McGRAW-HILL.
• Zilog – Z80 Family CPU User Manual.
Página 6 de 6