Excepções

Voltar

Designam-se por excepções os eventos a que o processador é sensível e que constituem alterações, normalmente pouco frequentes, ao fluxo normal de instruções de um programa.

As excepções podem ter origem externa (correspondentes à activação de pinos externos do processador) ou interna (decorrentes tipicamente de erros na execução das instruções).

Existem alguns pinos do PEPE (INT0 a INT3) que originam excepções explicitamente para interromper o fluxo do programa com o fim de lidar com eventos assíncronos ao programa e associados tipicamente com os periféricos. Essas excepções designam-se por interrupções.

A cada excepção está associada uma rotina de tratamento da excepção (ou rotina de serviço da excepção, ou simplesmente rotina de excepção), cujo endereço consta da  Tabela de Excepções, que contém uma palavra (o endereço da rotina de tratamento) para cada uma das excepções suportadas pelo processador.

A Tabela de Excepções começa no endereço indicado pelo registo BTE (Base da Tabela de Excepções), que deverá ser previamente inicializado com um valor adequado.

A tabela seguinte descreve as excepções que o PEPE suporta.

Endereço

Excepção

Causa

Ocorre em

Mascarável

Atendimento

Prioridade

0002H

INT0

O pino INT0 do processador é activado (com IE=1, IE0=1).

Qualquer altura

Sim

Após instrução em que ocorre

2

0004H

INT1

O pino INT1 do processador é activado (com IE=1, IE1=1).

Qualquer altura

Sim

Após instrução em que ocorre

3

0006H

INT2

O pino INT2 do processador é activado (com IE=1, IE2=1).

Qualquer altura

Sim

Após instrução em que ocorre

4

0008H

INT3

O pino INT3 do processador é activado (com IE=1, IE3=1).

Qualquer altura

Sim

Após instrução em que ocorre

5

000AH

EXCESSO

Uma operação aritmética gera excesso (overflow) se TV=1 no RE

Execução

Sim

Imediato

1

000CH

DIV0

Uma operação de divisão falha por o quociente ser zero se TD=1 no RE

Execução

Sim

Imediato

1

000EH

SOFTWARE

A instrução SWE (Software Exception) é executada. Usada tipicamente como chamada ao sistema operativo

Execução

Não

Incluído na execução da instrução

7

0010H

COD_INV

A Unidade de Controlo encontra uma combinação inválida de opcode. Pode ser encarada como uma excepção SWE com opcode próprio e portanto permite extender o conjunto de instruções por meio de software (rotina de excepção que verifica qual o opcode que gerou a excepção e invoca uma rotina adequada).

Descodifi-cação

Não

Incluído na descodificação da instrução

7

0012H

D_DESALINHADO

É feito um acesso de 16 bits à memória (dados) especificando um endereço ímpar

Execução

Não

Imediato

1

0014H

I_DESALINHADO

É feita uma busca à memória (fetch) tendo o PC um endereço ímpar

Busca

Não

Encadeado

6