Você está na página 1de 37

Arquitectura de Computadores

(ACom)

MEAer

Acetatos das Aulas Te´
oricas
Vers˜ao 5.0 - Portuguˆes

Aula No 06:

T´ıtulo: Perif´ericos do P3: entradas e sa´ıdas, interrup¸c˜oes e tempo-
rizador
Sum´
ario: Ambiente de desenvolvimento do P3; Perif´ericos do P3; En-
tradas e sa´ıdas; Interrup¸c˜oes; Contagem do Tempo.

2015/2016

Nuno.Roma@tecnico.ulisboa.pt

Arquitectura de Computadores
(ACom)

Perif´ericos do P3: entradas e
sa´ıdas, interrup¸c˜
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
 Instru¸co˜es do P3:
Interrup¸co
˜es

Contagem do Tempo ◮ Instru¸co˜es Aritm´eticas

Pr´
oxima Aula
Instru¸co˜es L´ogicas
◮ Instru¸co˜es de Deslocamento
◮ Instru¸co˜es de Controlo
◮ Instru¸co˜es de Transferˆencia de Dados
◮ Instru¸co˜es Gen´ericas

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

Road Map

Ambiente de
Desenvolvimento do
P3
Perif´
ericos do
processador P3

Interrup¸co
˜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

Interrup¸co
˜es

Contagem do Tempo

Pr´
oxima Aula

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

Contagem do Tempo  Interrup¸co˜es. Interrup¸co ˜es  Entradas e sa´ıdas. Sum´ ario Ambiente de Desenvolvimento do Hoje: P3 Perif´ ericos do  Ambiente de desenvolvimento do P3. DEEC-IST 6 / 47 .5 e A. processador P3  Perif´ericos do P3. Pr´ oxima Aula  Contagem do Tempo.2 Prof. Nuno Roma ACom 2015/16 (MEAer) . Bibliografia: • Sec¸co˜es 14. DEEC-IST 5 / 47 Ambiente de Desenvolvimento do P3 Perif´ ericos do processador P3 Interrup¸co ˜es Contagem do Tempo Pr´ oxima Aula Ambiente de Desenvolvimento do P3 Prof. Nuno Roma ACom 2015/16 (MEAer) .

Nuno Roma ACom 2015/16 (MEAer) .jar <nome>.C´odigo bin´ario ◮ <nome>. Nuno Roma ACom 2015/16 (MEAer) .lis .exe Prof.exe . DEEC-IST 8 / 47 .as Interrup¸co ˜es Resultado: Contagem do Tempo Pr´ oxima Aula ◮ <nome>.Listagem das referˆencias (tags) utilizadas  Simulador do processador P3 Invoca¸c˜ao: $ java -jar p3sim. Ambiente de Desenvolvimento do P3 Ambiente de Desenvolvimento do Constitu´ıdo por duas ferramentas distintas (em Linux): P3 Perif´ ericos do  Compilador de linguagem Assembly processador P3 Invoca¸c˜ao: $ p3as-linux <nome>. DEEC-IST 7 / 47 Simulador do processador P3 Ambiente de Desenvolvimento do  Simulador do processador P3: P3 Perif´ ericos do processador P3 Interrup¸co ˜es Contagem do Tempo Pr´ oxima Aula Prof.

DEEC-IST 9 / 47 Perif´ ericos do processador P3 Ambiente de Desenvolvimento do  V´arios perif´ericos dispon´ıveis: P3 Perif´ ericos do ◮ Entrada: processador P3 Interrup¸co ˜es • 8 Interruptores ON-OFF (switches) Contagem do Tempo • 15 Bot˜oes de press˜ao* Pr´ oxima Aula ◮ Sa´ıda: • 16 LEDs • 4 Displays de 7 segmentos • LCD de 2 linhas ◮ Entrada & Sa´ıda: • Janela de texto ◮ Outros: • Temporizador* * .Atrav´es de interrup¸c˜ao Prof. DEEC-IST 10 / 47 . Nuno Roma ACom 2015/16 (MEAer) .Ambiente de Desenvolvimento do P3 Perif´ ericos do processador P3 Interrup¸co ˜es Contagem do Tempo Pr´ oxima Aula Perif´ ericos do processador P3 Prof. Nuno Roma ACom 2015/16 (MEAer) .

. processador P3 ◮ O estado individual de cada LED (ligado/desligado) ´e Interrup¸co ˜es definido por uma escrita para este porto. Nuno Roma ACom 2015/16 (MEAer) . Contagem do Tempo MOV R1.. DEEC-IST 12 / 47 . Contagem do Tempo ◮ O LED da direita ´e controlado pelo bit menos Pr´ oxima Aula significativo da palavra escrita..1100111011011011b Pr´ oxima Aula MOV M[LEDS].. Prof. Prof. LEDs Ambiente de Desenvolvimento do  Utiliza¸c˜ao: P3 Perif´ ericos do ◮ Acess´ıveis atrav´es do endere¸co FFF8h. DEEC-IST 11 / 47 LEDs Ambiente de Desenvolvimento do  Exemplo: P3 Perif´ ericos do LEDS EQU FFF8h processador P3 Interrup¸co ˜es ORIG 0000h . Nuno Roma ACom 2015/16 (MEAer) . R1 .

em simultˆaneo. 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 Interrup¸co ˜es ORIG 0000h Contagem do Tempo .. Nuno Roma ACom 2015/16 (MEAer) ... M[SWITCH] MOV M[LEDS]. Interruptores ON-OFF (switches) Ambiente de Desenvolvimento do  Utiliza¸c˜ao: P3 Perif´ ericos do ◮ Acess´ıveis atrav´es do endere¸co FFF9h. Prof. R1 BR ReadSW . Nuno Roma ACom 2015/16 (MEAer) . Interrup¸co ˜es o estado do conjunto dos 8 interruptores. processador P3 ◮ Uma leitura deste endere¸co permite ler. Contagem do Tempo ◮ Ao interruptor da direita corresponde o bit menos Pr´ oxima Aula significativo da palavra lida. Pr´ oxima Aula ReadSW: MOV R1. Prof. DEEC-IST 14 / 47 ..

FFF1h.... um conjunto de 7 segmentos de LEDs. Nuno Roma ACom 2015/16 (MEAer) . R1 MOV M[DISPLAY7SEG2]. R2 SUB R2. 3 MOV R2. DEEC-IST 15 / 47 Displays de 7 Segmentos Ambiente de Desenvolvimento do  Exemplo: P3 Perif´ ericos do processador P3 Interrup¸co ˜es Contagem do Tempo DISPLAY7SEG0 EQU FFF0h DISPLAY7SEG1 EQU FFF1h Pr´ oxima Aula DISPLAY7SEG2 EQU FFF2h DISPLAY7SEG3 EQU FFF3h ORIG 0000h . 15 MOV M[DISPLAY7SEG3]. ◮ Interrup¸co ˜es Cada um destes portos controla. R2 SUB R2. R2 SUB R2. FFF2h e processador P3 FFF3h.. Prof. R1 MOV M[DISPLAY7SEG0]. R1 MOV M[DISPLAY7SEG1]. DEEC-IST 16 / 47 . Nuno Roma ACom 2015/16 (MEAer) . Prof. MOV R1. Displays de 7 Segmentos Ambiente de Desenvolvimento do  Utiliza¸c˜ao: P3 Perif´ ericos do ◮ Acess´ıveis atrav´es dos endere¸cos FFF0h. Pr´ oxima Aula ◮ Os 4 bits menos significativos determinam o caracter hexadecimal (0h a Fh) que aparece no display. R2 . da direita para a Contagem do Tempo esquerda.

• Bit 5 .Liga ou desliga o LCD. M[R2] CMP R3..Posiciona o cursor na linha 0 ou 1. Prof. 0000000000010000b .0 ORIG 0000h . ’ ’ BR. Nuno Roma ACom 2015/16 (MEAer) . Avan¸ ca para a pr´ oxima posi¸ ca~o BR Other EndLCD: BR EndLCD Prof. DEEC-IST 17 / 47 LCD Ambiente de Desenvolvimento do  Exemplo: P3 Perif´ ericos do processador P3 Interrup¸co ˜es LCD_CTR EQU FFF4h Contagem do Tempo LCD_CHAR EQU FFF5h Pr´ oxima Aula ORIG 8000h Text STR ’Hello World’.Posiciona o cursor na coluna especificada. ◮ Interrup¸co ˜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. R1 .NZ Cont OR R1. R0 BR.. R3 . LCD Ambiente de Desenvolvimento do  Utiliza¸c˜ao: P3 Perif´ ericos do ◮ Display com 16 colunas processador P3 e 2 linhas de texto. Muda de linha Cont: MOV M[LCD_CHAR]. R1 MOV R1.Limpa o LCD. DEEC-IST 18 / 47 . 1000000000100000b . MOV R1. • Bit 4 . Ponteiro para o caracter a escrever Other: MOV R3. ◮ O porto FFF4h ´e um porto de controlo: • Bit 15 . Nuno Roma ACom 2015/16 (MEAer) . Escreve caracter INC R2 INC R1 MOV M[LCD_CTR]. Linha 0. Activa e limpa o LCD MOV M[LCD_CTR]. R1 MOV R2. • Bits 3 a 0 . 1000000000000011b . Text .Z EndLCD CMP R3. Coluna 3 MOV M[LCD_CTR].

Contagem do Tempo ◮ Est˜ao reservados 4 portos: Pr´ oxima Aula • Porto de Leitura . DEEC-IST 20 / 47 . • Porto de Escrita . Nuno Roma ACom 2015/16 (MEAer) . Prof.FFFEh (escrita): ◦ Permite escrever um dado caracter ASCII na janela de texto. ◦ A janela mant´em internamente um cursor onde este caracter ´e escrito. Nuno Roma ACom 2015/16 (MEAer) .FFFFh (leitura): ◦ Retorna o caracter ASCII correspondente `a u ´ltima tecla premida sobre a janela de texto. DEEC-IST 19 / 47 Janela de Texto Ambiente de Desenvolvimento do  Utiliza¸c˜ao: P3 Perif´ ericos do ◮ Permite ler caracteres do teclado do computador. Janela de Texto Ambiente de Desenvolvimento do P3 Perif´ ericos do processador P3 Interrup¸co ˜es Contagem do Tempo Pr´ oxima Aula Prof. processador P3 ◮ Permite escrever caracteres numa janela com 24 linhas e Interrup¸co ˜es 80 colunas.

R3 .. caso n˜ao haja. a escrita de um caracter no porto de escrita incrementa automaticamente o cursor.0 Nome TAB 80 ORIG 0000h .Z RdKey MOV M[TXT_WR]. R0 BR. Nuno Roma ACom 2015/16 (MEAer) .. M[R2] CMP R3. to finish): ’. Ponteiro para o caracter a escrever NxChar: MOV R3. Prof. Janela de Texto Ambiente de Desenvolvimento do  Utiliza¸c˜ao: P3 Perif´ ericos do • Porto de Estado . MOV R2. Nuno Roma ACom 2015/16 (MEAer) .FFFDh (leitura): processador P3 Interrup¸co ˜es ◦ Permite testar se existe ou n˜ao algum caracter para ler Contagem do Tempo na janela de texto.. ◦ ´ poss´ıvel posicionar o cursor numa dada posi¸c˜ao E arbitr´aria da janela escrevendo. ◦ Ap´os a inicializa¸c˜ao. para o porto de controlo. Escreve caracter INC R2 BR NxChar RdKey: .. a coordenada desejada de acordo com a seguinte representa¸c˜ao: 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Linha Coluna Prof. Prompt . DEEC-IST 22 / 47 . uma leitura deste Pr´ oxima Aula porto retorna 0. • Porto de Controlo . DEEC-IST 21 / 47 Janela de Texto Ambiente de Desenvolvimento do  Exemplo: P3 Perif´ ericos do processador P3 Interrup¸co ˜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 .FFFCh (escrita): ◦ Uma escrita do valor FFFFh inicializa (apaga) a janela de texto.

R0 Pr´ oxima Aula NxStep: MOV R3. L^ e a ´ ultima tecla primida CMP R1. Perif´ ericos do MOV R1. Inicializa e limpa a janela MOV R1. R1 ..’ Contagem do Tempo BR. R0 BR. Nuno Roma ACom 2015/16 (MEAer) . Linha 5.. DEEC-IST 23 / 47 Janela de Texto Ambiente de Desenvolvimento do  Exemplo (cont): P3 . M[TXT_RD] . Posiciona cursor Contagem do Tempo MOV R2...Z EndInp Pr´ oxima Aula MOV M[TXT_WR]. coluna 10 Interrup¸co ˜es MOV M[TXT_CTR]. FFFFh processador P3 MOV M[TXT_CTR]. DEEC-IST 24 / 47 . R0 processador P3 Wait: CMP M[TXT_ST]. R0 . R1 .. Escreve caracter lido MOV M[R2+Nome]. 050Ah .. R1 INC R2 BR Wait EndInp: MOV M[R2+Nome]. Janela de Texto Ambiente de Desenvolvimento do  Exemplo (cont): P3 . Posiciona cursor BR NxStep EndPrg: BR EndPrg Prof. R0 .Z EndPrg MOV M[TXT_WR]. Nuno Roma ACom 2015/16 (MEAer) . R1 . ’. Perif´ ericos do MOV R2. Ciclo de espera por uma tecla primida BR. Prof. R1 . Avan¸ ca para a pr´ oxima coluna MOV M[TXT_CTR].Z Wait Interrup¸co ˜es MOV R1. Escreve caracter INC R2 INC R1 . M[R2+Nome] CMP R3. R3 .

Perif´ ericos do MOV R1.Z EndPrg MOV M[TXT_WR]. R3 . FFFFh processador P3 MOV M[TXT_CTR]. coluna 10 Interrup¸co ˜es MOV M[TXT_CTR]. Linha 5. Janela de Texto Ambiente de Desenvolvimento do  Exemplo (cont): P3 . R0 Pr´ oxima Aula NxStep: MOV R3. R1 . Inicializa e limpa a janela MOV R1. Escreve caracter INC R2 INC R1 . R0 BR. R1 . DEEC-IST 25 / 47 Ambiente de Desenvolvimento do P3 Perif´ ericos do processador P3 Interrup¸co ˜es Contagem do Tempo Pr´ oxima Aula Interrup¸co ˜es Prof. Nuno Roma ACom 2015/16 (MEAer) . 050Ah . R1 . Posiciona cursor BR NxStep EndPrg: BR EndPrg Prof. Nuno Roma ACom 2015/16 (MEAer) . Posiciona cursor Contagem do Tempo MOV R2. DEEC-IST 26 / 47 . Avan¸ ca para a pr´ oxima coluna MOV M[TXT_CTR]... M[R2+Nome] CMP R3.

Nuno Roma ACom 2015/16 (MEAer) . Nuno Roma ACom 2015/16 (MEAer) .). ◮ Interrup¸co ˜es Necessidade de efectuar algum processamento espec´ıfico. Pr´ oxima Aula Prof. etc. Contagem do Tempo ◮ Opera¸co˜es de entrada/sa´ıda (teclado. DEEC-IST 27 / 47 Interrup¸c˜ oes Ambiente de Desenvolvimento do  Exemplos: P3 Perif´ ericos do processador P3 Interrup¸co ˜es Contagem do Tempo Pr´ oxima Aula Prof. porto s´erie. DEEC-IST 28 / 47 . Interrup¸c˜ oes Ambiente de Desenvolvimento do  Interrup¸co ˜es: P3 Perif´ ericos do ◮ Acontecem quando a sequˆencia normal das instru¸co˜es ´e processador P3 alterada por motivos externos (e n˜ao s´o) ao processador.

o processador P3 valor sob observa¸c˜ao. DEEC-IST 29 / 47 Interrup¸c˜ oes Ambiente de Desenvolvimento do  Alternativa ao uso de interrup¸co˜es: P3 Perif´ ericos do ◮ Polling . Interrup¸co ˜es Problema: sobrecarga grande do processador!!! Contagem do Tempo Pr´ oxima Aula Prof. Nuno Roma ACom 2015/16 (MEAer) . a intervalos regulares. Nuno Roma ACom 2015/16 (MEAer) .o processador amostra. Interrup¸c˜ oes Ambiente de Desenvolvimento do  Exemplos: P3 Perif´ ericos do processador P3 Interrup¸co ˜es Contagem do Tempo Pr´ oxima Aula Prof. DEEC-IST 30 / 47 .

DEEC-IST 30 / 47 . a intervalos regulares.o processador amostra.o processador amostra. Interrup¸co ˜es Problema: sobrecarga grande do processador!!! Contagem do Tempo Pr´ oxima Aula Prof. Nuno Roma ACom 2015/16 (MEAer) . Nuno Roma ACom 2015/16 (MEAer) . DEEC-IST 30 / 47 Interrup¸c˜ oes Ambiente de Desenvolvimento do  Alternativa ao uso de interrup¸co˜es: P3 Perif´ ericos do ◮ Polling . Interrup¸co ˜es Problema: sobrecarga grande do processador!!! Contagem do Tempo Pr´ oxima Aula  Melhor solu¸c˜ao .Interrup¸co ˜es: ◮ Possibilidade de um dispositivo exterior sinalizar que a sequˆencia normal de instru¸co˜es deve ser interrompida e que o controlo deve ser transferido para uma rotina de atendimento da interrup¸c˜ ao. o processador P3 valor sob observa¸c˜ao. Prof. a intervalos regulares. o processador P3 valor sob observa¸c˜ao. Interrup¸c˜ oes Ambiente de Desenvolvimento do  Alternativa ao uso de interrup¸co˜es: P3 Perif´ ericos do ◮ Polling .

a intervalos regulares. DEEC-IST 30 / 47 Interrup¸c˜ oes Ambiente de Desenvolvimento do  Sinaliza¸c˜ ao das Interrup¸co ˜es: P3 Perif´ ericos do ◮ Cada processador disponibiliza uma ou mais linhas de processador P3 interrup¸c˜ao que s˜ao activadas pelos dispositivos Interrup¸co ˜es exteriores. Interrup¸c˜ oes Ambiente de Desenvolvimento do  Alternativa ao uso de interrup¸co˜es: P3 Perif´ ericos do ◮ Polling . Interrup¸co ˜es Problema: sobrecarga grande do processador!!! Contagem do Tempo Pr´ oxima Aula  Melhor solu¸c˜ao . DEEC-IST 31 / 47 .o processador amostra. Prof. Contagem do Tempo Pr´ oxima Aula Prof. o processador P3 valor sob observa¸c˜ao. Nuno Roma ACom 2015/16 (MEAer) . Nuno Roma ACom 2015/16 (MEAer) .Interrup¸co ˜es: ◮ Possibilidade de um dispositivo exterior sinalizar que a sequˆencia normal de instru¸co˜es deve ser interrompida e que o controlo deve ser transferido para uma rotina de atendimento da interrup¸c˜ ao.

→ uma u ´nica linha de interrup¸c˜ao pode sinalizar v´arias interrup¸co˜es diferentes! Prof.tabela de rotinas de interrup¸c˜ao. Nuno Roma ACom 2015/16 (MEAer) . DEEC-IST 31 / 47 Interrup¸c˜ oes Ambiente de Desenvolvimento do  Atendimento das Interrup¸co ˜es: P3 Perif´ ericos do ◮ O processador acede a uma tabela que indica qual o processador P3 endere¸co da sub-rotina que deve ser usada para atender Interrup¸co ˜es o pedido . Contagem do Tempo Pr´ oxima Aula  Identifica¸c˜ ao das Interrup¸co ˜es: ◮ Ap´os ter recebido a indica¸c˜ao de que uma interrup¸c˜ao vai ser atendida. Nuno Roma ACom 2015/16 (MEAer) . o dispositivo utiliza um dos barramentos exteriores para identificar a interrup¸c˜ao - vector de interrup¸c˜ ao. DEEC-IST 32 / 47 . Contagem do Tempo Pr´ oxima Aula Prof. Interrup¸c˜ oes Ambiente de Desenvolvimento do  Sinaliza¸c˜ ao das Interrup¸co ˜es: P3 Perif´ ericos do ◮ Cada processador disponibiliza uma ou mais linhas de processador P3 interrup¸c˜ao que s˜ao activadas pelos dispositivos Interrup¸co ˜es exteriores.

Interrup¸c˜ oes Ambiente de Desenvolvimento do  Atendimento das Interrup¸co ˜es: P3 Perif´ ericos do ◮ O processador acede a uma tabela que indica qual o processador P3 endere¸co da sub-rotina que deve ser usada para atender Interrup¸co ˜es o pedido . Pr´ oxima Aula ap´os a salvaguarda (autom´atica) na pilha de: • Registo de Estado (RE).tabela de rotinas de interrup¸c˜ ao. • Program Counter (PC)  Para que os registos RE e PC sejam correctamente recuperados. Prof. DEEC-IST 32 / 47 Interrup¸c˜ oes Ambiente de Desenvolvimento do  Atendimento das Interrup¸co ˜es: P3 Perif´ ericos do ◮ O processador acede a uma tabela que indica qual o processador P3 endere¸co da sub-rotina que deve ser usada para atender Interrup¸co ˜es o pedido . DEEC-IST 32 / 47 .tabela de rotinas de interrup¸c˜ ao. Contagem do Tempo ◮ Transfere o controlo da execu¸c˜ao para esta sub-rotina. Nuno Roma ACom 2015/16 (MEAer) . Pr´ oxima Aula ap´os a salvaguarda (autom´atica) na pilha de: • Registo de Estado (RE). as rotinas de atendimento das interrup¸co˜es devem obrigatoriamente terminar com a instru¸c˜ao RTI (em vez de RET. Contagem do Tempo ◮ Transfere o controlo da execu¸c˜ao para esta sub-rotina. como habitualmente). Nuno Roma ACom 2015/16 (MEAer) . • Program Counter (PC) Prof.

Contagem do Tempo ◮ Cada entrada cont´em o endere¸co do in´ıcio da rotina de Pr´ oxima Aula tratamento dessa interrup¸c˜ao. Interrup¸c˜ oes Ambiente de Desenvolvimento do  Tabela de rotinas de interrup¸c˜ ao: P3 Perif´ ericos do ◮ Residente numa zona fixa de mem´ oria. processador P3 ◮ Possui tantas entradas quantas as interrup¸co˜es do Interrup¸co ˜es processador. Nuno Roma ACom 2015/16 (MEAer) . processador P3 ◮ Possui tantas entradas quantas as interrup¸co˜es do Interrup¸co ˜es processador. DEEC-IST 33 / 47 Interrup¸c˜ oes Ambiente de Desenvolvimento do  Tabela de rotinas de interrup¸c˜ ao: P3 Perif´ ericos do ◮ Residente numa zona fixa de mem´ oria. Prof. Contagem do Tempo ◮ Cada entrada cont´em o endere¸co do in´ıcio da rotina de Pr´ oxima Aula tratamento dessa interrup¸c˜ao. Prof.  No P3 esta tabela come¸ca no endere¸co FE00h. DEEC-IST 33 / 47 . Nuno Roma ACom 2015/16 (MEAer) .

.. DEEC-IST 33 / 47 Interrup¸c˜ oes Ambiente de Desenvolvimento do  NOTA: as interrup¸co˜es podem ocorrer em qualquer P3 momento. processador P3 ◮ Possui tantas entradas quantas as interrup¸co˜es do Interrup¸co ˜es processador. DEEC-IST 34 / 47 . Perif´ ericos do processador P3 Exemplo: entre a execu¸c˜ao de uma instru¸c˜ao aritm´etica e a Interrup¸co ˜es instru¸c˜ao de salto condicional que dela depende: Contagem do Tempo Loop: DEC R1 Pr´ oxima Aula ← Interrup¸ ca ~o !!! BR. PC ← M[FE05h] Prof. sem que o processador o possa prever.  No P3 esta tabela come¸ca no endere¸co FE00h.Z Loop Da´ı a necessidade em salvaguardar o Registo de Estado (RE). Exemplo: Caso seja activada a interrup¸c˜ ao n.. Contagem do Tempo ◮ Cada entrada cont´em o endere¸co do in´ıcio da rotina de Pr´ oxima Aula tratamento dessa interrup¸c˜ao... Nuno Roma ACom 2015/16 (MEAer) . Nuno Roma ACom 2015/16 (MEAer) . a execu¸c˜ ao da rotina de atendimento da interrup¸c˜ ao ocorrer´a a partir do valor guardado na posi¸c˜ ao de mem´oria FE00h + n: PC ← M[FE00h + n] Se for a interrup¸c˜ ao 5. Prof.. Interrup¸c˜ oes Ambiente de Desenvolvimento do  Tabela de rotinas de interrup¸c˜ ao: P3 Perif´ ericos do ◮ Residente numa zona fixa de mem´ oria.

Prof. Nuno Roma ACom 2015/16 (MEAer) . Interrup¸co ˜es Contagem do Tempo → Necess´ario em zonas de c´ odigo onde a ocorrˆencia de Pr´ oxima Aula uma interrup¸c˜ao pode causar comportamentos indesejados. DEEC-IST 35 / 47 Interrup¸c˜ oes Ambiente de Desenvolvimento do  Activa¸c˜ ao/Inibi¸c˜ ao das Interrup¸co ˜es: P3 Perif´ ericos do ◮ O programador pode desactivar um bit de estado (E) de processador P3 modo a impedir que as interrup¸co˜es sejam atendidas. Nuno Roma ACom 2015/16 (MEAer) . Interrup¸co ˜es Contagem do Tempo → Necess´ario em zonas de c´ odigo onde a ocorrˆencia de Pr´ oxima Aula uma interrup¸c˜ao pode causar comportamentos indesejados. Interrup¸c˜ oes Ambiente de Desenvolvimento do  Activa¸c˜ ao/Inibi¸c˜ ao das Interrup¸co ˜es: P3 Perif´ ericos do ◮ O programador pode desactivar um bit de estado (E) de processador P3 modo a impedir que as interrup¸co˜es sejam atendidas. DEEC-IST 35 / 47 . ◮ Como? Prof. ◮ Como? [P3]: Instru¸co˜es ENI e DSI.

◮ Como? [P3]: Instru¸co˜es ENI e DSI. Interrup¸co ˜es Contagem do Tempo → Necess´ario em zonas de c´ odigo onde a ocorrˆencia de Pr´ oxima Aula uma interrup¸c˜ao pode causar comportamentos indesejados. Nuno Roma ACom 2015/16 (MEAer) .  No P3 as interrup¸co˜es s˜ao automaticamente inibidas durante o tempo em que o processador executa uma rotina de atendimento de interrup¸c˜ao. Porquˆe? Prof. DEEC-IST 35 / 47 Interrup¸c˜ oes Ambiente de Desenvolvimento do  Activa¸c˜ ao/Inibi¸c˜ ao das Interrup¸co ˜es: P3 Perif´ ericos do ◮ E ´ ainda poss´ıvel filtrar as interrup¸co˜es que devem ser processador P3 atendidas ou impedir o atendimento de outras atrav´es de Interrup¸co ˜es uma m´ ascara de interrup¸co ˜es: Contagem do Tempo Pr´ oxima Aula • Colocar a zero o bit com peso igual ao vector de interrup¸c˜ao 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. DEEC-IST 36 / 47 . Nuno Roma ACom 2015/16 (MEAer) . Interrup¸c˜ oes Ambiente de Desenvolvimento do  Activa¸c˜ ao/Inibi¸c˜ ao das Interrup¸co ˜es: P3 Perif´ ericos do ◮ O programador pode desactivar um bit de estado (E) de processador P3 modo a impedir que as interrup¸co˜es sejam atendidas.

a m´ascara reside numa determinada posi¸c˜ao de mem´oria do processador: [P3]: endere¸co FFFAh Prof. 1 e 3 Prof. DEEC-IST 36 / 47 Interrup¸c˜ oes Ambiente de Desenvolvimento do  Activa¸c˜ ao/Inibi¸c˜ ao das Interrup¸co ˜es: P3 Perif´ ericos do ◮ E ´ ainda poss´ıvel filtrar as interrup¸co˜es que devem ser processador P3 atendidas ou impedir o atendimento de outras atrav´es de Interrup¸co ˜es uma m´ ascara de interrup¸co ˜es: Contagem do Tempo Pr´ oxima Aula • Colocar a zero o bit com peso igual ao vector de interrup¸c˜ao 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. Nuno Roma ACom 2015/16 (MEAer) . Interrup¸c˜ oes Ambiente de Desenvolvimento do  Activa¸c˜ ao/Inibi¸c˜ ao das Interrup¸co ˜es: P3 Perif´ ericos do ◮ E ´ ainda poss´ıvel filtrar as interrup¸co˜es que devem ser processador P3 atendidas ou impedir o atendimento de outras atrav´es de Interrup¸co ˜es uma m´ ascara de interrup¸co ˜es: Contagem do Tempo Pr´ oxima Aula • Colocar a zero o bit com peso igual ao vector de interrup¸c˜ao 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 m´ascara reside numa determinada posi¸c˜ao de mem´oria do processador: [P3]: endere¸co FFFAh Exemplo: activa¸c˜ao das interrup¸co˜es 0. DEEC-IST 36 / 47 . Nuno Roma ACom 2015/16 (MEAer) .

0000 0000 0000 1011b MOV M[FFFAh]. a m´ascara reside numa determinada posi¸c˜ao de mem´oria do processador: [P3]: endere¸co FFFAh Exemplo: activa¸c˜ao das interrup¸co˜es 0. Nuno Roma ACom 2015/16 (MEAer) . Nuno Roma ACom 2015/16 (MEAer) . R1 Prof.M[FE00h+i] ◮ Temporizador (vemos a seguir) Prof. DEEC-IST 36 / 47 Interrup¸c˜ oes Ambiente de Desenvolvimento do  Como ´ e que ´ e desencadeada uma interrup¸c˜ ao? P3 Perif´ ericos do processador P3 Interrup¸co ˜es Contagem do Tempo Pr´ oxima Aula ◮ Bot˜ oes de Press˜ ao: • Est˜ao dispon´ıveis 15 bot˜ oes de press˜ao. • O accionamento do bot˜ao de ´ındice i faz com que o P3 chame a rotina de interrup¸c˜ao associada ao vector i: PC <. 1 e 3 MOV R1. DEEC-IST 37 / 47 . cada um associado a um vector de interrup¸c˜ao. Interrup¸c˜ oes Ambiente de Desenvolvimento do  Activa¸c˜ ao/Inibi¸c˜ ao das Interrup¸co ˜es: P3 Perif´ ericos do ◮ E ´ ainda poss´ıvel filtrar as interrup¸co˜es que devem ser processador P3 atendidas ou impedir o atendimento de outras atrav´es de Interrup¸co ˜es uma m´ ascara de interrup¸co ˜es: Contagem do Tempo Pr´ oxima Aula • Colocar a zero o bit com peso igual ao vector de interrup¸c˜ao 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.

DEEC-IST 38 / 47 . DEEC-IST 38 / 47 Interrup¸c˜ oes Ambiente de Desenvolvimento do  Passos necess´ arios para a utiliza¸c˜ ao de interrup¸co ˜es: P3 Perif´ ericos do 0. Nuno Roma ACom 2015/16 (MEAer) .. Interrup¸c˜ oes Ambiente de Desenvolvimento do  Passos necess´ arios para a utiliza¸c˜ ao de interrup¸co ˜es: P3 Perif´ ericos do 0. Activa¸c˜ao das interrup¸co ˜es Prof. Inicializa¸c˜ ao da m´ascara de interrup¸co ˜es Contagem do Tempo 3. Nuno Roma ACom 2015/16 (MEAer) . SP INICIAL Pr´ oxima Aula MOV SP. Programa principal Contagem do Tempo Inicio: MOV R7. Inicializa¸c˜ ao da m´ ascara de interrup¸co ˜es 3. 1. Preenchimento da tabela de interrup¸co ˜es Interrup¸co ˜es 2. R7 . Inicializa¸c˜ ao do Stack!!! processador P3 SP INICIAL EQU FDFFh Interrup¸co ˜es . Inicializa¸c˜ ao do Stack!!! processador P3 1.. Preenchimento da tabela de interrup¸co ˜es 2. Activa¸c˜ao das interrup¸co ˜es Pr´ oxima Aula Prof.

INT MASK MOV M[INT MASK ADDR].. Preenchimento da tabela de interrup¸co ˜es Interrup¸co ˜es . Nuno Roma ACom 2015/16 (MEAer) . Activa¸c˜ ao das interrup¸co ˜es Prof. DEEC-IST 38 / 47 . Inicializa¸c˜ ao do Stack!!! processador P3 1.. DEEC-IST 38 / 47 Interrup¸c˜ oes Ambiente de Desenvolvimento do  Passos necess´ arios para a utiliza¸c˜ ao de interrup¸co ˜es: P3 Perif´ ericos do 0... Interrup¸c˜ oes Ambiente de Desenvolvimento do  Passos necess´ arios para a utiliza¸c˜ ao de interrup¸co ˜es: P3 Perif´ ericos do 0. MOV R7. Rotina de atendimento da interrup¸c~ ao ResetCont: MOV M[Contador]. Inicializa¸c˜ ao do Stack!!! processador P3 1. Inicializa¸c˜ ao da m´ascara de interrup¸co ˜es Contagem do Tempo Pr´ oxima Aula INT MASK ADDR EQU FFFAh INT MASK EQU 0000000000000010b . Preenchimento da tabela de interrup¸co ˜es Interrup¸co ˜es 2. .. R7 . Nuno Roma ACom 2015/16 (MEAer) .. 3. Activa¸c˜ao das interrup¸co ˜es Prof. Programa principal Inicio: .. Inicializa¸c˜ ao da m´ ascara de interrup¸co ˜es 3.. INT1 WORD ResetCont INT2 WORD . R0 RTI 2. Tabela de interrup¸ c~oes Contagem do Tempo ORIG FE00h Pr´ oxima Aula INT0 WORD .

ENI . Inicializa¸c˜ ao da m´ascara de interrup¸co ˜es Contagem do Tempo 3. Tabela de interrup¸ co~es Contagem do Tempo ORIG FE00h INT0 WORD ResetCont Pr´ oxima Aula ORIG 0000h . R7 ENI . R7 MOV R7.. Nuno Roma ACom 2015/16 (MEAer) .. Rotina de atendimento da interrup¸ ca~o ResetCont: MOV M[Contador]. SP INICIAL MOV SP... Prof. INT MASK MOV M[INT MASK ADDR]. Programa principal Inicio: MOV R7.. R0 RTI Prof.. Preenchimento da tabela de interrup¸co ˜es Interrup¸co ˜es 2. DEEC-IST 39 / 47 . . Activa¸c˜ao das interrup¸co ˜es Pr´ oxima Aula . Programa principal Inicio: . Interrup¸c˜ oes Ambiente de Desenvolvimento do  Passos necess´ arios para a utiliza¸c˜ ao de interrup¸co ˜es: P3 Perif´ ericos do 0. Inicializa¸c˜ ao do Stack!!! processador P3 1. DEEC-IST 38 / 47 Interrup¸c˜ 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 Interrup¸co ˜es . Nuno Roma ACom 2015/16 (MEAer) .

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 Solu¸c˜ ao: temporizadores (timers) Interrup¸co ˜es Contagem do Tempo Pr´ oxima Aula Prof.Ambiente de Desenvolvimento do P3 Perif´ ericos do processador P3 Interrup¸co ˜es Contagem do Tempo Pr´ oxima Aula Contagem do Tempo Prof. DEEC-IST 41 / 47 . Nuno Roma ACom 2015/16 (MEAer) .

Contagem do Tempo Ambiente de Desenvolvimento do  Como tratar a passagem do tempo num P3 computador? Perif´ ericos do processador P3 Solu¸c˜ ao: temporizadores (timers) Interrup¸co ˜es Contagem do Tempo Pr´ oxima Aula  O processador P3 possui um temporizador (timer ) para permitir contabilizar de forma precisa a passagem do tempo. Nuno Roma ACom 2015/16 (MEAer) . 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 Solu¸c˜ ao: temporizadores (timers) Interrup¸co ˜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. Prof. DEEC-IST 41 / 47 .  Implementado atrav´es de um contador que ´e decrementado a intervalos de tempo regulares de 100 ms.

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 Solu¸c˜ ao: temporizadores (timers) Interrup¸co ˜es Contagem do Tempo Pr´ oxima Aula  O processador P3 possui um temporizador (timer ) para permitir contabilizar de forma precisa a passagem do tempo. Nuno Roma ACom 2015/16 (MEAer) .  Implementado atrav´es 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. Contagem do Tempo Ambiente de Desenvolvimento do  Como tratar a passagem do tempo num P3 computador? Perif´ ericos do processador P3 Solu¸c˜ ao: temporizadores (timers) Interrup¸co ˜es Contagem do Tempo Pr´ oxima Aula  O processador P3 possui um temporizador (timer ) para permitir contabilizar de forma precisa a passagem do tempo. DEEC-IST 41 / 47 .  Implementado atrav´es 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) .

Pr´ oxima Aula ◮ endere¸co FFF7h . DEEC-IST 42 / 47 .  Inicialmente a posi¸c˜ao de mem´ oria FFF7h est´a a 0 sendo necess´ario escrever l´a o valor 1 para que a contagem tenha in´ıcio. Nuno Roma ACom 2015/16 (MEAer) . Prof. Contagem do Tempo Ambiente de Desenvolvimento do  O temporizador ´e controlado por duas posi¸co˜es de mem´ oria: P3 Perif´ ericos do processador P3 ◮ endere¸co FFF6h . Prof.permite parar (=0) ou activar (=1) o funcionamento do contador. Pr´ oxima Aula ◮ endere¸co FFF7h . DEEC-IST 42 / 47 Contagem do Tempo Ambiente de Desenvolvimento do  O temporizador ´e controlado por duas posi¸co˜es de mem´ oria: P3 Perif´ ericos do processador P3 ◮ endere¸co FFF6h .permite parar (=0) ou activar (=1) o funcionamento do contador. contendo o n´ umero de unidades de Contagem do Tempo tempo a decrementar. Nuno Roma ACom 2015/16 (MEAer) .corresponde ao temporizador Interrup¸co ˜es propriamente dito. contendo o n´ umero de unidades de Contagem do Tempo tempo a decrementar.corresponde ao temporizador Interrup¸co ˜es propriamente dito.

DEEC-IST 42 / 47 Contagem do Tempo Ambiente de Desenvolvimento do  O temporizador ´e controlado por duas posi¸co˜es de mem´ oria: P3 Perif´ ericos do processador P3 ◮ endere¸co FFF6h . Nuno Roma ACom 2015/16 (MEAer) .permite parar (=0) ou activar (=1) o funcionamento do contador. contendo o n´ umero de unidades de Contagem do Tempo tempo a decrementar.  Quando o temporizador atinge o valor 0 (fim de contagem). Pr´ oxima Aula ◮ endere¸co FFF7h . Nuno Roma ACom 2015/16 (MEAer) . a posi¸c˜ao de mem´ oria FFF7h ´e automaticamente colocada a 0.  Quando o temporizador atinge o valor 0 (fim de contagem). DEEC-IST 42 / 47 .  Para iniciar nova contagem ser´a pois necess´ario colocar novo valor em FFF6h e colocar 1 em FFF7h. a posi¸c˜ao de mem´ oria FFF7h ´e automaticamente colocada a 0. contendo o n´ umero de unidades de Contagem do Tempo tempo a decrementar.  Inicialmente a posi¸c˜ao de mem´ oria FFF7h est´a a 0 sendo necess´ario escrever l´a o valor 1 para que a contagem tenha in´ıcio. Pr´ oxima Aula ◮ endere¸co FFF7h .permite parar (=0) ou activar (=1) o funcionamento do contador.corresponde ao temporizador Interrup¸co ˜es propriamente dito. Prof. parando a contagem.corresponde ao temporizador Interrup¸co ˜es propriamente dito. Contagem do Tempo Ambiente de Desenvolvimento do  O temporizador ´e controlado por duas posi¸co˜es de mem´ oria: P3 Perif´ ericos do processador P3 ◮ endere¸co FFF6h .  Inicialmente a posi¸c˜ao de mem´ oria FFF7h est´a a 0 sendo necess´ario escrever l´a o valor 1 para que a contagem tenha in´ıcio. parando a contagem. Prof.

a qual ´e P3 activada quando o contador atinge o valor 0: Perif´ ericos do processador P3 ◮ Para garantir a m´axima precis˜ao. Nuno Roma ACom 2015/16 (MEAer) . DEEC-IST 43 / 47 Contagem do Tempo Ambiente de Desenvolvimento do  O temporizador est´a associado `a interrup¸c˜ ao 15. Contagem do Tempo Ambiente de Desenvolvimento do  O temporizador est´a associado `a interrup¸c˜ ao 15. DEEC-IST 43 / 47 . Nuno Roma ACom 2015/16 (MEAer) . ´e conveniente que a Interrup¸co ˜es opria rotina re-programa¸c˜ao do timer seja feita pela pr´ Contagem do Tempo de atendimento da interrup¸c˜ ao!!! Pr´ oxima Aula • Re-iniciar intervalo de contagem em FFF6h • Re-activar contagem em FFF7h Prof. a qual ´e P3 activada quando o contador atinge o valor 0 Perif´ ericos do processador P3 Interrup¸co ˜es Contagem do Tempo Pr´ oxima Aula Prof.

esta subrotina ´ e chamada quando o temporizador chegou ao fim (0) vai ser necess´ ario . DEEC-IST 45 / 47 . 1000 0000 0000 0000 b processador P3 TimeLong EQU 0050h EnableTimer EQU 0001h Interrup¸co ˜es ORIG FE0Fh . Contagem do Tempo (exemplo) TopoPilha EQU FDFFh . endere¸ co do controlo do temporizador Perif´ ericos do Int15_mask EQU 8000h .TimeLong MOV M[TimerValue]. inicia contagem ENI .. POP R1 RTI Prof.R1 ..R1 . Nuno Roma ACom 2015/16 (MEAer) . DEEC-IST 44 / 47 Ambiente de Desenvolvimento do P3 Perif´ ericos do processador P3 Interrup¸co ˜es Contagem do Tempo Pr´ oxima Aula Pr´ oxima Aula Prof. endere¸ co do Temporizador P3 TimerControl EQU FFF7h .. Nuno Roma ACom 2015/16 (MEAer) . FE0Fh = FE00h + Fh (Fh = 15) Contagem do Tempo INT15 WORD TimerSub . inicia contagem . definir valor de contagem do timer MOV R1.EnableTimer MOV M[TimerControl].TimeLong MOV M[TimerValue]. .Int15_mask MOV M[InterruptMask]. definir valor de contagem do timer MOV R1. aceita interrup¸ co~es . endere¸ co do topo da pilha Ambiente de InterrupMask EQU FFFAh .EnableTimer MOV M[TimerControl].R1 . endere¸ co da M´ ascara de Interrup¸ co~es Desenvolvimento do TimerValue EQU FFF6h . definir novo valor de contagem e permitir que essa contagem comece ( M[FFF7h] = 1 ) TimerSub: PUSH R1 MOV R1..TopoPilha MOV SP. inicializa SP MOV R1. Permite a interrup¸ ca~o 15 (timer) MOV R1.R1 . Preenchimento da posi¸ ca~o 15 da Tabela de Interrup¸ co~es Pr´ oxima Aula ORIG 0000h MOV R1.R1 .R1 .

DEEC-IST 46 / 47 Nota de Agradecimento Ambiente de Desenvolvimento do P3 Perif´ ericos do processador P3 Agradecimento Interrup¸co ˜es Contagem do Tempo Algumas p´aginas desta apresenta¸c˜ao foram extraidas de: Pr´ oxima Aula [1] Jos´e Carlos Monteiro. 2010. Nuno Roma ACom 2015/16 (MEAer) . Universidade T´ecnica de Lisboa. Nuno Roma ACom 2015/16 (MEAer) . “Arquitectura de Computadores”. DEEC-IST 47 / 47 . Pr´ oxima Aula Ambiente de Desenvolvimento do  Tradu¸c˜ao de linguagem de alto n´ıvel para Assembly: P3 Perif´ ericos do ◮ Constantes processador P3 ◮ Vari´aveis Interrup¸co ˜es ◮ Estruturas de controlo Contagem do Tempo ◮ Chamadas a sub-rotinas Pr´ oxima Aula  Passagem de parˆametros para sub-rotinas: ◮ Por registo ◮ Por mem´ oria ◮ Pela pilha Prof. Prof. Instituto Superior T´ecnico (IST). Portugal.