Você está na página 1de 37

Arquitectura de Computadores

(ACom)

MEAer

Acetatos das Aulas Te


oricas
Versao 5.0 - Portugues

Aula No 06:

Ttulo: Perifericos do P3: entradas e sadas, interrupcoes e tempo-


rizador
Sum
ario: Ambiente de desenvolvimento do P3; Perifericos do P3; En-
tradas e sadas; Interrupcoes; Contagem do Tempo.

2015/2016

Nuno.Roma@tecnico.ulisboa.pt
Arquitectura de Computadores
(ACom)

Perifericos do P3: entradas e


sadas, interrupc
oes e temporizador

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 1 / 47

Aula Anterior

Ambiente de
Desenvolvimento do
Na aula anterior...
P3
Perif
ericos do  Recursos do P3
processador P3
 Instrucoes do P3:
Interrupco
es

Contagem do Tempo Instrucoes Aritmeticas



Pr
oxima Aula
Instrucoes Logicas
Instrucoes de Deslocamento
Instrucoes de Controlo
Instrucoes de Transferencia de Dados
Instrucoes Genericas

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 2 / 47


Road Map

Ambiente de
Desenvolvimento do
P3
Perif
ericos do
processador P3

Interrupco
es

Contagem do Tempo

Pr
oxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 3 / 47

Planeamento

Ambiente de
Desenvolvimento do
 Planeamento
P3
Perif
ericos do
processador P3

Interrupco
es

Contagem do Tempo

Pr
oxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 4 / 47


Sum
ario

Ambiente de
Desenvolvimento do
Hoje:
P3
Perif
ericos do
 Ambiente de desenvolvimento do P3;
processador P3  Perifericos do P3;
Interrupco
es
 Entradas e sadas;
Contagem do Tempo
 Interrupcoes;
Pr
oxima Aula
 Contagem do Tempo.

Bibliografia:
Seccoes 14.5 e A.2

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 5 / 47

Ambiente de
Desenvolvimento do
P3
Perif
ericos do
processador P3

Interrupco
es

Contagem do Tempo

Pr
oxima Aula

Ambiente de Desenvolvimento do P3

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 6 / 47


Ambiente de Desenvolvimento do P3

Ambiente de
Desenvolvimento do Constitudo por duas ferramentas distintas (em Linux):
P3
Perif
ericos do  Compilador de linguagem Assembly
processador P3
Invocacao: $ p3as-linux <nome>.as
Interrupco
es
Resultado:
Contagem do Tempo

Pr
oxima Aula <nome>.exe - Codigo binario
<nome>.lis - Listagem das referencias (tags) utilizadas
 Simulador do processador P3
Invocacao: $ java -jar p3sim.jar <nome>.exe

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 7 / 47

Simulador do processador P3

Ambiente de
Desenvolvimento do
 Simulador do processador P3:
P3
Perif
ericos do
processador P3

Interrupco
es

Contagem do Tempo

Pr
oxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 8 / 47


Ambiente de
Desenvolvimento do
P3
Perif
ericos do
processador P3

Interrupco
es

Contagem do Tempo

Pr
oxima Aula

Perif
ericos do processador P3

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 9 / 47

Perif
ericos do processador P3

Ambiente de
Desenvolvimento do
 Varios perifericos disponveis:
P3
Perif
ericos do Entrada:
processador P3

Interrupco
es
8 Interruptores ON-OFF (switches)
Contagem do Tempo 15 Botoes de pressao*
Pr
oxima Aula
Sada:
16 LEDs
4 Displays de 7 segmentos
LCD de 2 linhas
Entrada & Sada:
Janela de texto
Outros:
Temporizador*
* - Atraves de interrupcao

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 10 / 47


LEDs

Ambiente de
Desenvolvimento do
 Utilizacao:
P3
Perif
ericos do Acessveis atraves do endereco FFF8h;
processador P3
O estado individual de cada LED (ligado/desligado) e
Interrupco
es
definido por uma escrita para este porto;
Contagem do Tempo
O LED da direita e controlado pelo bit menos
Pr
oxima Aula
significativo da palavra escrita.

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 11 / 47

LEDs

Ambiente de
Desenvolvimento do
 Exemplo:
P3
Perif
ericos do LEDS EQU FFF8h
processador P3

Interrupco
es ORIG 0000h
...
Contagem do Tempo
MOV R1,1100111011011011b
Pr
oxima Aula MOV M[LEDS], R1
...

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 12 / 47


Interruptores ON-OFF (switches)

Ambiente de
Desenvolvimento do
 Utilizacao:
P3
Perif
ericos do Acessveis atraves do endereco FFF9h;
processador P3
Uma leitura deste endereco permite ler, em simultaneo,
Interrupco
es
o estado do conjunto dos 8 interruptores;
Contagem do Tempo
Ao interruptor da direita corresponde o bit menos
Pr
oxima Aula
significativo da palavra lida.

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 13 / 47

Interruptores ON-OFF (switches)

Ambiente de
Desenvolvimento do
 Exemplo:
P3
Perif
ericos do LEDS EQU FFF8h
processador P3 SWITCH EQU FFF9h
Interrupco
es
ORIG 0000h
Contagem do Tempo
...
Pr
oxima Aula ReadSW: MOV R1, M[SWITCH]
MOV M[LEDS], R1
BR ReadSW
...

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 14 / 47


Displays de 7 Segmentos

Ambiente de
Desenvolvimento do
 Utilizacao:
P3
Perif
ericos do Acessveis atraves dos enderecos FFF0h, FFF1h, FFF2h e
processador P3
FFF3h;

Interrupco
es
Cada um destes portos controla, da direita para a
Contagem do Tempo
esquerda, um conjunto de 7 segmentos de LEDs;
Pr
oxima Aula
Os 4 bits menos significativos determinam o caracter
hexadecimal (0h a Fh) que aparece no display.

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 15 / 47

Displays de 7 Segmentos

Ambiente de
Desenvolvimento do
 Exemplo:
P3
Perif
ericos do
processador P3

Interrupco
es

Contagem do Tempo
DISPLAY7SEG0 EQU FFF0h
DISPLAY7SEG1 EQU FFF1h
Pr
oxima Aula
DISPLAY7SEG2 EQU FFF2h
DISPLAY7SEG3 EQU FFF3h

ORIG 0000h
...
MOV R1, 3
MOV R2, 15
MOV M[DISPLAY7SEG3], R2
SUB R2, R1
MOV M[DISPLAY7SEG2], R2
SUB R2, R1
MOV M[DISPLAY7SEG1], R2
SUB R2, R1
MOV M[DISPLAY7SEG0], R2
...

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 16 / 47


LCD

Ambiente de
Desenvolvimento do
 Utilizacao:
P3
Perif
ericos do Display com 16 colunas
processador P3
e 2 linhas de texto;

Interrupco
es
Uma escrita para o
Contagem do Tempo
porto FFF5h faz ecoar o
Pr
oxima Aula
caracter ASCII
correspondente aos
8 LSBs da palavra
escrita;
O porto FFF4h e um porto de controlo:
Bit 15 - Liga ou desliga o LCD;
Bit 5 - Limpa o LCD;
Bit 4 - Posiciona o cursor na linha 0 ou 1;
Bits 3 a 0 - Posiciona o cursor na coluna especificada.

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 17 / 47

LCD

Ambiente de
Desenvolvimento do
 Exemplo:
P3
Perif
ericos do
processador P3

Interrupco
es
LCD_CTR EQU FFF4h
Contagem do Tempo LCD_CHAR EQU FFF5h
Pr
oxima Aula ORIG 8000h
Text STR Hello World,0

ORIG 0000h
...
MOV R1, 1000000000100000b ; Activa e limpa o LCD
MOV M[LCD_CTR], R1
MOV R1, 1000000000000011b ; Linha 0, Coluna 3
MOV M[LCD_CTR], R1
MOV R2, Text ; Ponteiro para o caracter a escrever
Other: MOV R3, M[R2]
CMP R3, R0
BR.Z EndLCD
CMP R3,
BR.NZ Cont
OR R1, 0000000000010000b ; Muda de linha
Cont: MOV M[LCD_CHAR], R3 ; Escreve caracter
INC R2
INC R1
MOV M[LCD_CTR], R1 ; Avan
ca para a pr
oxima posi
ca~o
BR Other
EndLCD: BR EndLCD

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 18 / 47


Janela de Texto

Ambiente de
Desenvolvimento do
P3
Perif
ericos do
processador P3

Interrupco
es

Contagem do Tempo

Pr
oxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 19 / 47

Janela de Texto

Ambiente de
Desenvolvimento do
 Utilizacao:
P3
Perif
ericos do Permite ler caracteres do teclado do computador;
processador P3
Permite escrever caracteres numa janela com 24 linhas e
Interrupco
es
80 colunas;
Contagem do Tempo
Estao reservados 4 portos:
Pr
oxima Aula
Porto de Leitura - FFFFh (leitura):
Retorna o caracter ASCII correspondente `a u
ltima
tecla premida sobre a janela de texto;
Porto de Escrita - FFFEh (escrita):
Permite escrever um dado caracter ASCII na janela de
texto;
A janela mantem internamente um cursor onde este
caracter e escrito;

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 20 / 47


Janela de Texto

Ambiente de
Desenvolvimento do
 Utilizacao:
P3
Perif
ericos do Porto de Estado - FFFDh (leitura):
processador P3

Interrupco
es Permite testar se existe ou nao algum caracter para ler
Contagem do Tempo na janela de texto; caso nao haja, uma leitura deste
Pr
oxima Aula porto retorna 0;
Porto de Controlo - FFFCh (escrita):
Uma escrita do valor FFFFh inicializa (apaga) a janela
de texto;
Apos a inicializacao, a escrita de um caracter no porto
de escrita incrementa automaticamente o cursor;
possvel posicionar o cursor numa dada posicao
E
arbitraria da janela escrevendo, para o porto de
controlo, a coordenada desejada de acordo com a
seguinte representacao:
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00
Linha Coluna

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 21 / 47

Janela de Texto

Ambiente de
Desenvolvimento do
 Exemplo:
P3
Perif
ericos do
processador P3

Interrupco
es

Contagem do Tempo

Pr
oxima Aula
TXT_CTR EQU FFFCh
TXT_ST EQU FFFDh
TXT_WR EQU FFFEh
TXT_RD EQU FFFFh

ORIG 8000h
Prompt STR Type some text (press . to finish): ,0
Nome TAB 80

ORIG 0000h
...

MOV R2, Prompt ; Ponteiro para o caracter a escrever


NxChar: MOV R3, M[R2]
CMP R3, R0
BR.Z RdKey
MOV M[TXT_WR], R3 ; Escreve caracter
INC R2
BR NxChar

RdKey: ...

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 22 / 47


Janela de Texto

Ambiente de
Desenvolvimento do  Exemplo (cont):
P3
...
Perif
ericos do MOV R2, R0
processador P3 Wait: CMP M[TXT_ST], R0 ; Ciclo de espera por uma tecla primida
BR.Z Wait
Interrupco
es MOV R1, M[TXT_RD] ; L^
e a
ultima tecla primida
CMP R1, .
Contagem do Tempo BR.Z EndInp
Pr
oxima Aula MOV M[TXT_WR], R1 ; Escreve caracter lido
MOV M[R2+Nome], R1
INC R2
BR Wait
EndInp: MOV M[R2+Nome], R0
...

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 23 / 47

Janela de Texto

Ambiente de
Desenvolvimento do  Exemplo (cont):
P3
...
Perif
ericos do MOV R1, FFFFh
processador P3 MOV M[TXT_CTR], R1 ; Inicializa e limpa a janela
MOV R1, 050Ah ; Linha 5, coluna 10
Interrupco
es MOV M[TXT_CTR], R1 ; Posiciona cursor
Contagem do Tempo MOV R2, R0
Pr
oxima Aula NxStep: MOV R3, M[R2+Nome]
CMP R3, R0
BR.Z EndPrg
MOV M[TXT_WR], R3 ; Escreve caracter
INC R2
INC R1 ; Avan
ca para a pr
oxima coluna
MOV M[TXT_CTR], R1 ; Posiciona cursor
BR NxStep

EndPrg: BR EndPrg

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 24 / 47


Janela de Texto

Ambiente de
Desenvolvimento do  Exemplo (cont):
P3
...
Perif
ericos do MOV R1, FFFFh
processador P3 MOV M[TXT_CTR], R1 ; Inicializa e limpa a janela
MOV R1, 050Ah ; Linha 5, coluna 10
Interrupco
es MOV M[TXT_CTR], R1 ; Posiciona cursor
Contagem do Tempo MOV R2, R0
Pr
oxima Aula NxStep: MOV R3, M[R2+Nome]
CMP R3, R0
BR.Z EndPrg
MOV M[TXT_WR], R3 ; Escreve caracter
INC R2
INC R1 ; Avan
ca para a pr
oxima coluna
MOV M[TXT_CTR], R1 ; Posiciona cursor
BR NxStep

EndPrg: BR EndPrg

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 25 / 47

Ambiente de
Desenvolvimento do
P3
Perif
ericos do
processador P3

Interrupco
es

Contagem do Tempo

Pr
oxima Aula

Interrupco
es

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 26 / 47


Interrupc
oes

Ambiente de
Desenvolvimento do
 Interrupco
es:
P3
Perif
ericos do Acontecem quando a sequencia normal das instrucoes e
processador P3
alterada por motivos externos (e nao so) ao processador;

Interrupco
es
Necessidade de efectuar algum processamento especfico;
Contagem do Tempo
Operacoes de entrada/sada (teclado, porto serie, etc.).
Pr
oxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 27 / 47

Interrupc
oes

Ambiente de
Desenvolvimento do
 Exemplos:
P3
Perif
ericos do
processador P3

Interrupco
es

Contagem do Tempo

Pr
oxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 28 / 47


Interrupc
oes

Ambiente de
Desenvolvimento do
 Exemplos:
P3
Perif
ericos do
processador P3

Interrupco
es

Contagem do Tempo

Pr
oxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 29 / 47

Interrupc
oes

Ambiente de
Desenvolvimento do
 Alternativa ao uso de interrupcoes:
P3
Perif
ericos do Polling - o processador amostra, a intervalos regulares, o
processador P3
valor sob observacao;
Interrupco
es
Problema: sobrecarga grande do processador!!!
Contagem do Tempo

Pr
oxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 30 / 47


Interrupc
oes

Ambiente de
Desenvolvimento do
 Alternativa ao uso de interrupcoes:
P3
Perif
ericos do Polling - o processador amostra, a intervalos regulares, o
processador P3
valor sob observacao;
Interrupco
es
Problema: sobrecarga grande do processador!!!
Contagem do Tempo

Pr
oxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 30 / 47

Interrupc
oes

Ambiente de
Desenvolvimento do
 Alternativa ao uso de interrupcoes:
P3
Perif
ericos do Polling - o processador amostra, a intervalos regulares, o
processador P3
valor sob observacao;
Interrupco
es
Problema: sobrecarga grande do processador!!!
Contagem do Tempo

Pr
oxima Aula

 Melhor solucao - Interrupco


es:
Possibilidade de um dispositivo exterior sinalizar que a
sequencia normal de instrucoes deve ser interrompida e
que o controlo deve ser transferido para uma rotina de
atendimento da interrupc ao.

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 30 / 47


Interrupc
oes

Ambiente de
Desenvolvimento do
 Alternativa ao uso de interrupcoes:
P3
Perif
ericos do Polling - o processador amostra, a intervalos regulares, o
processador P3
valor sob observacao;
Interrupco
es
Problema: sobrecarga grande do processador!!!
Contagem do Tempo

Pr
oxima Aula

 Melhor solucao - Interrupco


es:
Possibilidade de um dispositivo exterior sinalizar que a
sequencia normal de instrucoes deve ser interrompida e
que o controlo deve ser transferido para uma rotina de
atendimento da interrupc ao.

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 30 / 47

Interrupc
oes

Ambiente de
Desenvolvimento do
 Sinalizac
ao das Interrupco
es:
P3
Perif
ericos do Cada processador disponibiliza uma ou mais linhas de
processador P3
interrupcao que sao activadas pelos dispositivos
Interrupco
es
exteriores;
Contagem do Tempo

Pr
oxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 31 / 47


Interrupc
oes

Ambiente de
Desenvolvimento do
 Sinalizac
ao das Interrupco
es:
P3
Perif
ericos do Cada processador disponibiliza uma ou mais linhas de
processador P3
interrupcao que sao activadas pelos dispositivos
Interrupco
es
exteriores;
Contagem do Tempo

Pr
oxima Aula  Identificac
ao das Interrupco
es:
Apos ter recebido a indicacao de que uma interrupcao
vai ser atendida, o dispositivo utiliza um dos
barramentos exteriores para identificar a interrupcao -
vector de interrupc ao;
uma u nica linha de interrupcao pode sinalizar varias
interrupcoes diferentes!

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 31 / 47

Interrupc
oes

Ambiente de
Desenvolvimento do
 Atendimento das Interrupco
es:
P3
Perif
ericos do O processador acede a uma tabela que indica qual o
processador P3
endereco da sub-rotina que deve ser usada para atender
Interrupco
es
o pedido - tabela de rotinas de interrupcao;
Contagem do Tempo

Pr
oxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 32 / 47


Interrupc
oes

Ambiente de
Desenvolvimento do
 Atendimento das Interrupco
es:
P3
Perif
ericos do O processador acede a uma tabela que indica qual o
processador P3
endereco da sub-rotina que deve ser usada para atender
Interrupco
es
o pedido - tabela de rotinas de interrupc ao;
Contagem do Tempo
Transfere o controlo da execucao para esta sub-rotina,
Pr
oxima Aula
apos a salvaguarda (automatica) na pilha de:
Registo de Estado (RE);
Program Counter (PC)

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 32 / 47

Interrupc
oes

Ambiente de
Desenvolvimento do
 Atendimento das Interrupco
es:
P3
Perif
ericos do O processador acede a uma tabela que indica qual o
processador P3
endereco da sub-rotina que deve ser usada para atender
Interrupco
es
o pedido - tabela de rotinas de interrupc ao;
Contagem do Tempo
Transfere o controlo da execucao para esta sub-rotina,
Pr
oxima Aula
apos a salvaguarda (automatica) na pilha de:
Registo de Estado (RE);
Program Counter (PC)

 Para que os registos RE e PC sejam correctamente


recuperados, as rotinas de atendimento das interrupcoes
devem obrigatoriamente terminar com a instrucao RTI
(em vez de RET, como habitualmente).

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 32 / 47


Interrupc
oes

Ambiente de
Desenvolvimento do
 Tabela de rotinas de interrupc
ao:
P3
Perif
ericos do Residente numa zona fixa de mem oria;
processador P3
Possui tantas entradas quantas as interrupcoes do
Interrupco
es
processador;
Contagem do Tempo
Cada entrada contem o endereco do incio da rotina de
Pr
oxima Aula
tratamento dessa interrupcao.

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 33 / 47

Interrupc
oes

Ambiente de
Desenvolvimento do
 Tabela de rotinas de interrupc
ao:
P3
Perif
ericos do Residente numa zona fixa de mem oria;
processador P3
Possui tantas entradas quantas as interrupcoes do
Interrupco
es
processador;
Contagem do Tempo
Cada entrada contem o endereco do incio da rotina de
Pr
oxima Aula
tratamento dessa interrupcao.
 No P3 esta tabela comeca no endereco FE00h;

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 33 / 47


Interrupc
oes

Ambiente de
Desenvolvimento do
 Tabela de rotinas de interrupc
ao:
P3
Perif
ericos do Residente numa zona fixa de mem oria;
processador P3
Possui tantas entradas quantas as interrupcoes do
Interrupco
es
processador;
Contagem do Tempo
Cada entrada contem o endereco do incio da rotina de
Pr
oxima Aula
tratamento dessa interrupcao.
 No P3 esta tabela comeca no endereco FE00h;
Exemplo:
Caso seja activada a interrupc
ao n, a execuc
ao da rotina de
atendimento da interrupc
ao ocorrera a partir do valor guardado na
posic
ao de memoria FE00h + n:
PC M[FE00h + n]
Se for a interrupc
ao 5...
PC M[FE05h]

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 33 / 47

Interrupc
oes

Ambiente de
Desenvolvimento do
 NOTA: as interrupcoes podem ocorrer em qualquer
P3
momento, sem que o processador o possa prever...
Perif
ericos do
processador P3 Exemplo: entre a execucao de uma instrucao aritmetica e a
Interrupco
es instrucao de salto condicional que dela depende:
Contagem do Tempo
Loop: DEC R1
Pr
oxima Aula
Interrup
ca
~o !!!
BR.Z Loop
Da a necessidade em salvaguardar o Registo de
Estado (RE)...

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 34 / 47


Interrupc
oes

Ambiente de
Desenvolvimento do  Activac
ao/Inibic
ao das Interrupco
es:
P3
Perif
ericos do O programador pode desactivar um bit de estado (E) de
processador P3
modo a impedir que as interrupcoes sejam atendidas;
Interrupco
es

Contagem do Tempo Necessario em zonas de c


odigo onde a ocorrencia de
Pr
oxima Aula uma interrupcao pode causar comportamentos
indesejados;
Como?

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 35 / 47

Interrupc
oes

Ambiente de
Desenvolvimento do  Activac
ao/Inibic
ao das Interrupco
es:
P3
Perif
ericos do O programador pode desactivar um bit de estado (E) de
processador P3
modo a impedir que as interrupcoes sejam atendidas;
Interrupco
es

Contagem do Tempo Necessario em zonas de c


odigo onde a ocorrencia de
Pr
oxima Aula uma interrupcao pode causar comportamentos
indesejados;
Como?
[P3]: Instrucoes ENI e DSI.

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 35 / 47


Interrupc
oes

Ambiente de
Desenvolvimento do  Activac
ao/Inibic
ao das Interrupco
es:
P3
Perif
ericos do O programador pode desactivar um bit de estado (E) de
processador P3
modo a impedir que as interrupcoes sejam atendidas;
Interrupco
es

Contagem do Tempo Necessario em zonas de c


odigo onde a ocorrencia de
Pr
oxima Aula uma interrupcao pode causar comportamentos
indesejados;
Como?
[P3]: Instrucoes ENI e DSI.
 No P3 as interrupcoes sao automaticamente inibidas durante
o tempo em que o processador executa uma rotina de
atendimento de interrupcao.
Porque?

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 35 / 47

Interrupc
oes

Ambiente de
Desenvolvimento do  Activac
ao/Inibic
ao das Interrupco es:
P3
Perif
ericos do E ainda possvel filtrar as interrupcoes que devem ser
processador P3
atendidas ou impedir o atendimento de outras atraves de
Interrupco
es
uma m ascara de interrupco es:
Contagem do Tempo

Pr
oxima Aula Colocar a zero o bit com peso igual ao vector de
interrupcao que se pretende inibir:
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00
0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 36 / 47


Interrupc
oes

Ambiente de
Desenvolvimento do  Activac
ao/Inibic
ao das Interrupco es:
P3
Perif
ericos do E ainda possvel filtrar as interrupcoes que devem ser
processador P3
atendidas ou impedir o atendimento de outras atraves de
Interrupco
es
uma m ascara de interrupco es:
Contagem do Tempo

Pr
oxima Aula Colocar a zero o bit com peso igual ao vector de
interrupcao que se pretende inibir:
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00
0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1

Em geral, a mascara reside numa determinada posicao


de memoria do processador:
[P3]: endereco FFFAh

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 36 / 47

Interrupc
oes

Ambiente de
Desenvolvimento do  Activac
ao/Inibic
ao das Interrupco es:
P3
Perif
ericos do E ainda possvel filtrar as interrupcoes que devem ser
processador P3
atendidas ou impedir o atendimento de outras atraves de
Interrupco
es
uma m ascara de interrupco es:
Contagem do Tempo

Pr
oxima Aula Colocar a zero o bit com peso igual ao vector de
interrupcao que se pretende inibir:
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00
0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1

Em geral, a mascara reside numa determinada posicao


de memoria do processador:
[P3]: endereco FFFAh
Exemplo: activacao das interrupcoes 0, 1 e 3

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 36 / 47


Interrupc
oes

Ambiente de
Desenvolvimento do  Activac
ao/Inibic
ao das Interrupco es:
P3
Perif
ericos do E ainda possvel filtrar as interrupcoes que devem ser
processador P3
atendidas ou impedir o atendimento de outras atraves de
Interrupco
es
uma m ascara de interrupco es:
Contagem do Tempo

Pr
oxima Aula Colocar a zero o bit com peso igual ao vector de
interrupcao que se pretende inibir:
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00
0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1

Em geral, a mascara reside numa determinada posicao


de memoria do processador:
[P3]: endereco FFFAh
Exemplo: activacao das interrupcoes 0, 1 e 3
MOV R1, 0000 0000 0000 1011b
MOV M[FFFAh], R1

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 36 / 47

Interrupc
oes

Ambiente de
Desenvolvimento do
 Como
e que
e desencadeada uma interrupc
ao?
P3
Perif
ericos do
processador P3

Interrupco
es

Contagem do Tempo

Pr
oxima Aula

Bot
oes de Press
ao:
Estao disponveis 15 bot
oes de pressao, cada um
associado a um vector de interrupcao;
O accionamento do botao de ndice i faz com que o
P3 chame a rotina de interrupcao associada ao
vector i: PC <- M[FE00h+i]
Temporizador (vemos a seguir)

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 37 / 47


Interrupc
oes

Ambiente de
Desenvolvimento do
 Passos necess
arios para a utilizac
ao de interrupco
es:
P3
Perif
ericos do 0. Inicializac
ao do Stack!!!
processador P3
1. Preenchimento da tabela de interrupco es
Interrupco
es
2. Inicializac
ao da mascara de interrupco
es
Contagem do Tempo
3. Activacao das interrupco
es
Pr
oxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 38 / 47

Interrupc
oes

Ambiente de
Desenvolvimento do
 Passos necess
arios para a utilizac
ao de interrupco
es:
P3
Perif
ericos do 0. Inicializac
ao do Stack!!!
processador P3
SP INICIAL EQU FDFFh
Interrupco
es
; Programa principal
Contagem do Tempo Inicio: MOV R7, SP INICIAL
Pr
oxima Aula MOV SP, R7
...

1. Preenchimento da tabela de interrupco es


2. Inicializac
ao da m
ascara de interrupco
es
3. Activacao das interrupco
es

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 38 / 47


Interrupc
oes

Ambiente de
Desenvolvimento do
 Passos necess
arios para a utilizac
ao de interrupco
es:
P3
Perif
ericos do 0. Inicializac
ao do Stack!!!
processador P3
1. Preenchimento da tabela de interrupco
es
Interrupco
es
; Tabela de interrup
c~oes
Contagem do Tempo
ORIG FE00h
Pr
oxima Aula INT0 WORD ...
INT1 WORD ResetCont
INT2 WORD ...

; Rotina de atendimento da interrupc~


ao
ResetCont: MOV M[Contador], R0
RTI

2. Inicializac
ao da m
ascara de interrupco
es
3. Activacao das interrupco
es

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 38 / 47

Interrupc
oes

Ambiente de
Desenvolvimento do
 Passos necess
arios para a utilizac
ao de interrupco
es:
P3
Perif
ericos do 0. Inicializac
ao do Stack!!!
processador P3
1. Preenchimento da tabela de interrupco es
Interrupco
es
2. Inicializac
ao da mascara de interrupco
es
Contagem do Tempo

Pr
oxima Aula
INT MASK ADDR EQU FFFAh
INT MASK EQU 0000000000000010b

; Programa principal
Inicio: ...
MOV R7, INT MASK
MOV M[INT MASK ADDR], R7
...

3. Activac
ao das interrupco
es

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 38 / 47


Interrupc
oes

Ambiente de
Desenvolvimento do
 Passos necess
arios para a utilizac
ao de interrupco
es:
P3
Perif
ericos do 0. Inicializac
ao do Stack!!!
processador P3
1. Preenchimento da tabela de interrupco es
Interrupco
es
2. Inicializac
ao da mascara de interrupco
es
Contagem do Tempo
3. Activacao das interrupco
es
Pr
oxima Aula
; Programa principal
Inicio: ...
ENI
...

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 38 / 47

Interrupc
oes

Ambiente de
Desenvolvimento do
 Exemplo:
P3
SP INICIAL EQU FDFFh
Perif
ericos do INT MASK ADDR EQU FFFAh
processador P3 INT MASK EQU 0000000000000001b
Interrupco
es
; Tabela de interrup
co~es
Contagem do Tempo ORIG FE00h
INT0 WORD ResetCont
Pr
oxima Aula
ORIG 0000h ; Programa principal
Inicio: MOV R7, SP INICIAL
MOV SP, R7
MOV R7, INT MASK
MOV M[INT MASK ADDR], R7
ENI
...

; Rotina de atendimento da interrup


ca~o
ResetCont: MOV M[Contador], R0
RTI

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 39 / 47


Ambiente de
Desenvolvimento do
P3
Perif
ericos do
processador P3

Interrupco
es

Contagem do Tempo

Pr
oxima Aula

Contagem do Tempo

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 40 / 47

Contagem do Tempo

Ambiente de
Desenvolvimento do
 Como tratar a passagem do tempo num
P3
computador?
Perif
ericos do
processador P3 Soluc
ao: temporizadores (timers)
Interrupco
es

Contagem do Tempo

Pr
oxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 41 / 47


Contagem do Tempo

Ambiente de
Desenvolvimento do
 Como tratar a passagem do tempo num
P3
computador?
Perif
ericos do
processador P3 Soluc
ao: temporizadores (timers)
Interrupco
es

Contagem do Tempo

Pr
oxima Aula

 O processador P3 possui um temporizador (timer ) para


permitir contabilizar de forma precisa a passagem do tempo;

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 41 / 47

Contagem do Tempo

Ambiente de
Desenvolvimento do
 Como tratar a passagem do tempo num
P3
computador?
Perif
ericos do
processador P3 Soluc
ao: temporizadores (timers)
Interrupco
es

Contagem do Tempo

Pr
oxima Aula

 O processador P3 possui um temporizador (timer ) para


permitir contabilizar de forma precisa a passagem do tempo;
 Implementado atraves de um contador que e decrementado a
intervalos de tempo regulares de 100 ms;

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 41 / 47


Contagem do Tempo

Ambiente de
Desenvolvimento do
 Como tratar a passagem do tempo num
P3
computador?
Perif
ericos do
processador P3 Soluc
ao: temporizadores (timers)
Interrupco
es

Contagem do Tempo

Pr
oxima Aula

 O processador P3 possui um temporizador (timer ) para


permitir contabilizar de forma precisa a passagem do tempo;
 Implementado atraves de um contador que e decrementado a
intervalos de tempo regulares de 100 ms;
Como contar 1 minuto e 30 segundos?

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 41 / 47

Contagem do Tempo

Ambiente de
Desenvolvimento do
 Como tratar a passagem do tempo num
P3
computador?
Perif
ericos do
processador P3 Soluc
ao: temporizadores (timers)
Interrupco
es

Contagem do Tempo

Pr
oxima Aula

 O processador P3 possui um temporizador (timer ) para


permitir contabilizar de forma precisa a passagem do tempo;
 Implementado atraves de um contador que e decrementado a
intervalos de tempo regulares de 100 ms;
Como contar 1 minuto e 30 segundos?
1m30s = 90s = 900 intervalos de 100 ms

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 41 / 47


Contagem do Tempo

Ambiente de
Desenvolvimento do  O temporizador e controlado por duas posicoes de mem
oria:
P3
Perif
ericos do
processador P3
endereco FFF6h - corresponde ao temporizador
Interrupco
es propriamente dito, contendo o n
umero de unidades de
Contagem do Tempo tempo a decrementar;
Pr
oxima Aula endereco FFF7h - permite parar (=0) ou activar (=1) o
funcionamento do contador;

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 42 / 47

Contagem do Tempo

Ambiente de
Desenvolvimento do  O temporizador e controlado por duas posicoes de mem
oria:
P3
Perif
ericos do
processador P3
endereco FFF6h - corresponde ao temporizador
Interrupco
es propriamente dito, contendo o n
umero de unidades de
Contagem do Tempo tempo a decrementar;
Pr
oxima Aula endereco FFF7h - permite parar (=0) ou activar (=1) o
funcionamento do contador;

 Inicialmente a posicao de mem oria FFF7h esta a 0 sendo


necessario escrever la o valor 1 para que a contagem tenha
incio;

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 42 / 47


Contagem do Tempo

Ambiente de
Desenvolvimento do  O temporizador e controlado por duas posicoes de mem
oria:
P3
Perif
ericos do
processador P3
endereco FFF6h - corresponde ao temporizador
Interrupco
es propriamente dito, contendo o n
umero de unidades de
Contagem do Tempo tempo a decrementar;
Pr
oxima Aula endereco FFF7h - permite parar (=0) ou activar (=1) o
funcionamento do contador;

 Inicialmente a posicao de mem oria FFF7h esta a 0 sendo


necessario escrever la o valor 1 para que a contagem tenha
incio;
 Quando o temporizador atinge o valor 0 (fim de contagem),
a posicao de mem
oria FFF7h e automaticamente colocada a
0, parando a contagem;

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 42 / 47

Contagem do Tempo

Ambiente de
Desenvolvimento do  O temporizador e controlado por duas posicoes de mem
oria:
P3
Perif
ericos do
processador P3
endereco FFF6h - corresponde ao temporizador
Interrupco
es propriamente dito, contendo o n
umero de unidades de
Contagem do Tempo tempo a decrementar;
Pr
oxima Aula endereco FFF7h - permite parar (=0) ou activar (=1) o
funcionamento do contador;

 Inicialmente a posicao de mem oria FFF7h esta a 0 sendo


necessario escrever la o valor 1 para que a contagem tenha
incio;
 Quando o temporizador atinge o valor 0 (fim de contagem),
a posicao de mem
oria FFF7h e automaticamente colocada a
0, parando a contagem;
 Para iniciar nova contagem sera pois necessario colocar novo
valor em FFF6h e colocar 1 em FFF7h.

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 42 / 47


Contagem do Tempo

Ambiente de
Desenvolvimento do
 O temporizador esta associado `a interrupc
ao 15, a qual e
P3
activada quando o contador atinge o valor 0
Perif
ericos do
processador P3

Interrupco
es

Contagem do Tempo

Pr
oxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 43 / 47

Contagem do Tempo

Ambiente de
Desenvolvimento do
 O temporizador esta associado `a interrupc
ao 15, a qual e
P3
activada quando o contador atinge o valor 0:
Perif
ericos do
processador P3
Para garantir a maxima precisao, e conveniente que a
Interrupco
es
opria rotina
re-programacao do timer seja feita pela pr
Contagem do Tempo
de atendimento da interrupc ao!!!
Pr
oxima Aula

Re-iniciar intervalo de contagem em FFF6h


Re-activar contagem em FFF7h

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 43 / 47


Contagem do Tempo (exemplo)

TopoPilha EQU FDFFh ; endere


co do topo da pilha
Ambiente de InterrupMask EQU FFFAh ; endere
co da M
ascara de Interrup
co~es
Desenvolvimento do TimerValue EQU FFF6h ; endere
co do Temporizador
P3 TimerControl EQU FFF7h ; endere
co do controlo do temporizador
Perif
ericos do Int15_mask EQU 8000h ; 1000 0000 0000 0000 b
processador P3 TimeLong EQU 0050h
EnableTimer EQU 0001h
Interrupco
es
ORIG FE0Fh ; FE0Fh = FE00h + Fh (Fh = 15)
Contagem do Tempo INT15 WORD TimerSub ; Preenchimento da posi
ca~o 15 da Tabela de Interrup
co~es
Pr
oxima Aula ORIG 0000h
MOV R1,TopoPilha
MOV SP,R1 ; inicializa SP
MOV R1,Int15_mask
MOV M[InterruptMask],R1 ; Permite a interrup
ca~o 15 (timer)
MOV R1,TimeLong
MOV M[TimerValue],R1 ; definir valor de contagem do timer
MOV R1,EnableTimer
MOV M[TimerControl],R1 ; inicia contagem

ENI ; aceita interrup


co~es
...

; esta subrotina
e chamada quando o temporizador chegou ao fim (0) vai ser necess
ario
; definir novo valor de contagem e permitir que essa contagem comece ( M[FFF7h] = 1 )
TimerSub: PUSH R1
MOV R1,TimeLong
MOV M[TimerValue],R1 ; definir valor de contagem do timer
MOV R1,EnableTimer
MOV M[TimerControl],R1 ; inicia contagem
...
POP R1
RTI

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 44 / 47

Ambiente de
Desenvolvimento do
P3
Perif
ericos do
processador P3

Interrupco
es

Contagem do Tempo

Pr
oxima Aula

Pr
oxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 45 / 47


Pr
oxima Aula

Ambiente de
Desenvolvimento do
 Traducao de linguagem de alto nvel para Assembly:
P3
Perif
ericos do
Constantes
processador P3 Variaveis
Interrupco
es Estruturas de controlo
Contagem do Tempo Chamadas a sub-rotinas
Pr
oxima Aula
 Passagem de parametros para sub-rotinas:
Por registo
Por mem oria
Pela pilha

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 46 / 47

Nota de Agradecimento

Ambiente de
Desenvolvimento do
P3
Perif
ericos do
processador P3
Agradecimento
Interrupco
es

Contagem do Tempo
Algumas paginas desta apresentacao foram extraidas de:
Pr
oxima Aula
[1] Jose Carlos Monteiro, Arquitectura de Computadores, Instituto
Superior Tecnico (IST), Universidade Tecnica de Lisboa, Portugal,
2010.

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 47 / 47