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

As instruções de interrupções são responsáveis por forçar a geração de interrupções ou lançar interrupções de acordo com situações de erro, debug e outros.

Visite o tópico VDI(Vetor e Interrupções) onde os vetores TRAPV e TRAP estão explicados em caso de dúvida.

Tanto TRAP quanto TRAPV podem ser utilizados por sistemas operacionais. Porém, não são de uso obrigatório para outros tipos de programas como jogos e aplicativos que não são executados sobre um S.O.

Abaixo, a notação utilizada ao longo dos tópicos abordados nesta parte do tutorial:

Tab. 1: Notação utilizada
Símbolo Descrição
<- Atribuição
SSP SP em modo privilegiado
S Flag Supervisor
SR Status Register
   
CCR
- Não sofre alteração
a Sofre alteração

Com a instrução RESET podemos forçar o pino RESET do 68K fazendo com que todos os periféricos ligados sejam resetados. Essa instrução trabalha em modo privilegiado e não tem efeito na operação do processador.

Operação
se S = 1
    RESET
senao
    TRAP
Endereçamento Origem
-
Tamanho do dado
-
CCR
X: -
N: -
Z: -
V: -
C: -
Sintaxe
RESET
Ex
;...
RESET
;...

A instrução RTE é utilizada restaurar/retornar o fluxo de execução após a execução de uma interrupção continuando o fluxo anterior à chamada de uma interrupção.

Para restaurar o fluxo de execução, o registrador SR é restaurado a partir da pilha assim como PC respectivamente. O fluxo continua a partir do PC restaurado.

Operação
SR <- (SP)
SP <- SP + 2
PC <- (SP)
SP <- SP + 4
Endereçamento Origem
-
Endereçamento Destino
-
Tamanho do dado
Longword
CCR
X: a
N: a
Z: a
V: a
C: a
Sintaxe
RTE
Ex
;...
;rotina para gerenciar interrupção
vetor_level1:
;...
RTE

Utilizando a instrução STOP podemos para a execução do 68k até que ele seja "acordado" por um interrupção. Essa instrução é privilegiada.

A registrador SR recebe um valor Word imediato, o PC avança para a próxima instrução e o processador entra em modo espera até que um interrupção de reset, Level 1-7 ou outra ocorra para acordar.

Um reset externo(Vetor #1) irá causar um reset geral reiniciando o processador e destruindo os dados gerados na instrução STOP, PC e SR.

Operação
SR <- valor_imediato
PC <- proxima_instrucao
STOP
Endereçamento Origem
#imediato.W
Tamanho do dado
Word
CCR
X: a
N: a
Z: a
V: a
C: a
Sintaxe
STOP #imediato ; resetar CCR e I =7 e S = 1
Ex
STOP #2700

Utilizando a instrução TRAP podemos forçar o processo de interrupção. Essa instrução conta com 16 vetores de interrupção contido no VDI, TRAP #0-15, que é passado como valor imediato para a instrução.

TRAP é utilizado para chamadas de sistemas operaciones ou támbem pode ser utilizada para fins de debug. É de uso livre do usuário. Em um S.O, por exemplo, pode ser utilizada em modo privilegiado.

Apenas os 4 bits menos significativos do valor imediato contendo o vetor de traps é utilizado.

Operação
S <- 1
SSP <- SSP - 4
(SSP) <- PC
SSP <- SSP - 2
(SSP) <- SR
PC <- vetor_trap
Endereçamento Origem
#imediato.B
Tamanho do dado
Byte
CCR
X: -
N: -
Z: -
V: -
C: -
Sintaxe
TRAP #vetor_trap
Ex
MOVE D7, #$01 ; linha
MOVE D6,#$01 ; coluna
TRAP #15 ; posicionar cursor

A instrução TRAPV é semelhante a instrução TRAP, mas utiliza implicitamente o vetor TRAPV #7 contido no endereço 0x000001C0 do VDI e funciona apenas quando a flag V é igual a 1.

TRAPV é utilizada para chamadas de sistemas operacionais para lidar com erros aritméticos de overflow sendo o uso não obrigatório caso não haja.

Apenas os 4 bits menos significativos do valor imediato contendo o vetor de traps informado é utilizado.

Operação
S <- 1
SSP <- SSP - 4
(SSP) <- PC
SSP <- SSP - 2
(SSP) <- SR
PC <- vetor_trap
Endereçamento Origem
#imediato.B
Tamanho do dado
Byte
CCR
X: -
N: -
Z: -
V: -
C: -
Sintaxe
TRAP #vetor_trap
Ex
MOVE D7, #$01 ; linha
MOVE D6,#$01 ; coluna
TRAP #15 ; posicionar cursor

Assim como TRAP, a instrução ILLEGAL força o processo de interrupção, mas para uma instrução ilegal desviando o fluxo de execução para o endereço contido no vetor #4 do VDI que também é invocada quando um opcode ilegal é executado.

A ILLEGAL pode ser utilizada para fins de debug quando precisamos verificar se um trecho de código executando quando não deveria.

Operação
SSP <- SSP - 4
(SSP) <- PC
SSP <- SSP - 2
(SSP) <- SR
PC <- vetor_4
Endereçamento Origem
-
Tamanho do dado
Longword
CCR
X: -
N: -
Z: -
V: -
C: -
Sintaxe
ILLEGAL
Ex
ILLEGAL
  1. 05/09/2024 - revisão 1 - Correção em introdução, link VDI e erros gramaticais
  2. 30/08/2024 - revisão 1 - Correção em links de objetivos
  3. 08/04/2024 - versão inicial