arquitectura de computadores - inesc-idalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf ·...
TRANSCRIPT
LICENCIATURA EM ENGENHARIA INFORMATICA E DE COMPUTADORES
Arquitectura de Computadores
Ano lectivo de 2004/2005
Guia de Laboratorio
INSTITUTO SUPERIOR TECNICO
Arquitectura de Computadores - Guia de Laboratorio 2
Plano das aulas
1a Aula: 1o Trabalho 3Introducao ao ambiente de laboratorio. Introducao a linguagem de programacao Assembly: instru-
coes de transferencia de dados e modos de enderecamento. Treino nos metodos de teste e de correccaode programas.
2a Aula: 2o Trabalho 7Instrucoes aritmeticas, logicas e de salto. Treino na concepcao, teste e correccao de pequenos
programas.
3a Aula: 3o Trabalho 9Nocao de rotinas em Assembly e de metodos de passagem de parametros.
4a Aula: 4o Trabalho 11Comunicacao com os dispositivos de entrada e saıda. Manipulacao dos dispositivos da placa IST05
5a Aula: 5o Trabalho 13Interaccao com os restantes dispositivos da placa IST05. Analise do sistema de interrupcoes do
processador P3.
6a Aula: 1a parte do Projecto 15Avaliar a capacidade dos alunos de conceber, desenvolver e testar um programa simples em lin-
guagem Assembly, utilizando os conceitos adquiridos nas aulas anteriores.
7a Aula: 6o Trabalho 17Introducao a µprogramacao. Analise de uma instrucao Assembly, em termos de µprogramacao.
Modificacao do funcionamento de uma instrucao Assembly.
8a Aula: 7o Trabalho 19Implementacao de uma nova instrucao Assembly.
9a Aula: 2a parte do Projecto 21Avaliar a capacidade dos alunos de conceber e desenvolver um µprograma de uma nova instru-
cao Assembly, utilizando os conceitos adquiridos nas aulas anteriores. Avaliar ainda a capacidade dedesenvolvimento de um programa complexo em linguagem Assembly fazendo uso dessa nova instrucao.
10a Aula:2a parte do projecto (conclusao).
11a Aula:Discussoes.
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 3
1o Trabalho
Objectivos
Introducao ao ambiente de laboratorio. Introducao a linguagem de programacao Assembly: instrucoesde transferencia de dados e modos de enderecamento. Treino nos metodos de teste e de correccao deprogramas.
Topicos
1. Funcionamento do laboratorio
1.1. Estrutura de directorias
1.2. Metodologia de trabalho
O corpo docente nao se responsabiliza por trabalhos que tenham sido exclusivamente ar-
mazenados no PC do laboratorio.
No final de cada aula os alunos deverao entregar o anexo respeitante a aula, que contem
os resultados do trabalho realizado.
2. Introducao ao ambiente de laboratorio
2.1. Ferramentas utilizadas para a programacao em Assembly
• Editor de texto: Qualquer um dos existentes
• Assembler: p3as
2.2. Ferramenta utilizada para o teste e a execucao do programas
• Simulador: p3sim
3. Introducao a linguagem de programacao Assembly
3.1. Estrutura de um programa
3.2. Directivas Assembly
3.3. Instrucoes de transferencia de dados
• Caso das transferencias:
– registo → registo
– registo → memoria
– memoria → registo
– memoria → memoria
• Exemplificacao dos modos de enderecamento
4. Treino nos metodos de teste e correccao de programas
• Utilizacao dos comandos: Janela Texto, Correr, Instrucao, Escreve Registo e Es-
creve Memoria.
Nota: No final da aula devera ser entregue o Anexo II-1, contendo as respostas as questoes
identificadas a negrito.
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 4
Enunciado
1. Comecar uma sessao
Entre em sessao no PC, com o utilizador public e sem password. Coloque-se numa directoriatemporaria e crie uma directoria para o seu grupo. Copie para a directoria recem criada osficheiros aula1 1.as e aula1 2.as, que se encontram listados no Anexo I.
2. Introducao ao ambiente de laboratorio
Utilizando o ficheiro aula1 1.as execute as seguintes funcoes:
⇒ 2.1. Proceda a assemblagem do programa, gerando os ficheiros executavel e de referencias. Paraisso proceda como se indica em seguida:
> p3as aula1 1.as <enter>
p3as, Version 1.2, last modified 29/11/01, 16:57:16Assembling completed with success, object file: aula1 1.exeReferences file: aula1 1.lis>
Examine o ficheiro aula1 1.lis. Anote o valor dos enderecos correspondentes as etiquetasinicio e fim.
2.2. Utilize o simulador p3sim para testar e executar o programa. Para isso, evoque o simuladorda seguinte forma:
> p3sim <enter>
Identifique a informacao contida nas varias janelas, bem como os diversos comandos dis-ponıveis.
Seguidamente, efectue o carregamento do programa executavel aula1 1.exe, atraves daexecucao da opcao Carrega Programa, existente no menu Ficheiro. Verifique a altera-cao do conteudo da janela de codigo. Analise o codigo desassemblado e compare-o com odo programa fonte.
2.3. Antes de iniciar a execucao do programa, abra a janela de Entradas/Saıdas. Para tal, selec-cione a opcao Janela Texto, existente no menu Ver. Seguidamente, execute o programa,seleccionando o botao Corre.
3. Introducao a linguagem de programacao Assembly
Utilizando o ficheiro aula1 2.as, execute as seguintes funcoes:
⇒ 3.1. No troco de programa, que se encontra representado no Anexo II-1 identifique:
⇒ a) as zonas de definicao de constantes, de dados e de codigo;
⇒ b) inıcio e o fim do programa principal;
⇒ c) as pseudo-instrucoes existentes. Descreva as suas funcoes.
⇒ 3.2. Sem recorrer ao simulador, preencha a Tabela 1 (registos R0 a R3) do referido anexo.
⇒ 3.3. Proceda a geracao do ficheiro executavel e ao seu carregamento no simulador, utilizandoos procedimentos descritos nas Seccoes 2.1 e 2.2, respectivamente. Execute o programainstrucao a instrucao, seleccionando o botao Instrucao.
Identifique os modos de enderecamento presentes em cada instrucao e preencha a Tabela 2do Anexo II-1. Justifique a diferenca de comportamento do registo R0.
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 5
⇒ 3.4. Indique que valor se encontra na posicao de memoria 8003h e justifique que valor e esse.
⇒ 3.5. Atraves da utlizacao do comando Esceve Registo, do menu Depuracao, inicialize osregistos R1 a R7, com o valor FFFFh. Utilizando o comando Escreve Memoria, domesmo menu, inicialize as posicoes de memoria correspondentes as variaveis VarUmByte
e VarOutroByte, tambem com o valor FFFFh.
Repita a execucao do programa, utilizando o comando Corre. Compare a informacao dosregistos com a informacao que registou na Tabela 1 e registe as alteracoes verificadas naTabela 3.
⇒ 3.6. Introduza no referido programa um conjunto de instrucoes de transferencia de dados quepermitam realizar funcoes que se descrevem nas alıneas seguintes.
⇒ a) Utilizando o modo de enderecamento directo, copiar o conteudo do registo R4 para aposicao de memoria VarOutroByte.
⇒ b) Utilizando o modo de enderecamento indirecto por registo, copiar o conteudo do registoR6 para a posicao de memoria VarUmaWord.
⇒ c) Copiar o conteudo da posicao de memoria VarOutroByte para a posicao de memoriaVarUmByte.
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 6
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 7
2o Trabalho
Objectivos
Instrucoes aritmeticas, logicas e de salto. Treino na concepcao, teste e correccao de pequenos progra-mas.
Topicos
1. Instrucoes aritmeticas, logicas e de salto
2. Programacao Assembly
2.1. Analise de um programa
2.2. Construcao de pequenos programas, a partir de uma especificacao simples
3. Treino nos metodos de teste e de correccao de programas
• Utilizacao dos comandos: Pontos de Paragem e Continua
Nota: No final da aula devera ser entregue o Anexo II-2, contendo todas as respostas as questoes do
referido Anexo, identificadas com o sımbolo ⇒.
Enunciado
1. Instrucoes de salto. Analise de um programa
Copie para a directoria de grupo o ficheiro aula2.as, que se encontra listado no Anexo I.
⇒ 1.1. Por inspeccao do referido ficheiro, identifique:
⇒ a) as instrucoes de salto incondicional e de salto condicional. Para cada instrucao identi-ficada, indique em que condicoes e que o salto ocorre e para onde.
⇒ b) a funcao realizada pelo programa desde o inıcio ate a etiqueta meio.
⇒ c) a funcao realizada pelo programa desde a etiqueta meio ate ao fim.
1.2. Com recurso ao simulador p3sim , execute o programa ate a etiqueta meio.
Para tal, proceda como a seguir se indica:
• Comece por localizar, na janela de codigo, a linha correspondente a essa etiqueta,recorrendo a informacao existente no ficheiro de referencias (aula2.lis).
• Introduza um ponto de paragem nessa linha. Para tal, seleccione a linha, seleccione ocomando Pontos de Paragem, existente no menu Depuracao, e seleccione os botoesAdiciona e Fecha.
• Seguidamente, execute o programa, seleccionando o botao Corre.
Confirme a funcao identificada em 1.1.b), por analise do conteudo da janela de memoria.
1.3. Finalize a execucao do programa, seleccionado o botao Continua ate ser atingida a etiquetafim.
Confirme a funcao identificada em 1.1.c), por analise do conteudo da janela de memoria.
⇒ 1.4. Na janela onde se encontra o conteudo da memoria localize a zona de memoria onde estacodificada a instrucao BR fim. Troque a instrucao BR fim pela instrucao JMP fim. Veri-fique novamente a codificacao da instrucao de salto. Justifique as alteracoes observadas.
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 8
2. Instrucoes aritmeticas e logicas. Concepcao de programas
⇒ 2.1. Utilizando a linguagem Assembly do simulador P3, conceba um programa para realizarcada uma das funcoes que a seguir se descrevem.
⇒ a) Soma de dois numeros positivos de 32 bits. Os numeros a somar deverao estar emmemoria. Como cada posicao de memoria so contem 16 bits, cada numero ocuparaduas posicoes de memoria. Assuma que o primeiro numero comeca na posicao dememoria com endereco Num1 e o segundo em Num2, devendo o resultado ser armazenadoem duas posicoes de memoria a partir do endereco Soma. Preencha os valores iniciaisdas posicoes de memoria dos operandos atraves do comando Escreve Memoria.Considere que:
• a palavra mais significativa de cada numero ocupa a posicao de memoria de endere-co mais elevado.
• a operacao de adicao se efectua atraves de registos, de acordo com o seguinteesquema:(R1,R2) ← (R1,R2) + (R3,R4)
⇒ b) Troca de octetos numa palavra de memoria. O octeto mais significativo da palavra dememoria devera ocupar a posicao menos significativa e vice-versa.Exemplo: Conteudo inicial da posicao de memoria: 1234h
Conteudo final da posicao de memoria: 3412h
⇒ c) Descompactacao da informacao existente numa zona de memoria. Cada nibble (4 bits)de uma palavra sera colocado numa posicao de memoria separada.Considere que:
• Existe uma posicao de memoria com o numero de palavras a descompactar;
• Tem que ser reservado espaco em memoria onde fiquem colocados os dados dadescompactacao.
Exemplo:
DadosIniciais STR 1234h,5678h
NumDados WORD 2
DadosFinais TAB 8
Em memoria na posicao DadosIniciais fica:1234 5678
Em memoria, apos descompactacao, na posicao DadosFinais, fica:0001 0002 0003 0004 0005 0006 0007 0008
⇒ 2.2. Com recurso ao simulador p3sim, teste cada um dos programas que realizou. Anote oresultado dos testes realizados, bem como a sequencia de accoes que utilizou para realizaros referidos testes.
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 9
3o Trabalho
Objectivos
Nocao de rotinas em Assembly e de metodos de passagem de parametros.
Topicos
1. Rotinas e metodos de passagem de parametros. Intrucoes de manipulacao da pilha.
1.1. Instrucoes Assembly associadas a utilizacao de rotinas
1.2. Intrucoes de manipulacao da pilha.
1.3. Metodos de passagem de parametros.
1.4. Interaccao com a placa IST05.
2. Concepcao de programas com rotinas que permitam aplicar os conceitos anteriores.
Nota: No final da aula devera ser entregue o Anexo II-3, contendo todas as respostas as questoes
do referido Anexo, identificadas com o sımbolo ⇒.
Enunciado
1. Rotinas
1.1. Analise o programa aula3 1.as e identifique as rotinas existentes, as suas funcionalidadese os metodos de passagem de parametros utilizados.
1.2. Introduza um ponto de paragem no inıcio da rotina EscString, utilizando o procedimentodescrito na alınea 1.2 do trabalho anterior. Execute o programa ate ao ponto de parageme, a partir daı, execute a rotina EscString instrucao a instrucao. Analise a evolucao dapilha.
⇒ 1.3. Analise o programa aula3 2.as. Identifique o metodo de passagem de parametros da rotinafact.
1.4. Execute o programa. Verifique que o factorial de um numero e calculado correctamente.
⇒ 1.5. Reescreva o programa de modo a que a passagem de parametros da rotina fact seja pelapilha.
⇒ 1.6. Tomando como ponto de partida o programa de alınea anterior reescreva a rotina fact demodo a que o calculo do factorial seja efectuado de forma recursiva (a rotina chama-se a sipropria).
⇒ 1.7. Consegue-se alterar a rotina fact da alınea anterior de modo a que a passagem de parametrosseja efectuada por registo? Justifique.
2. Placa IST05
2.1. Execute o programa aula3 1.as na placa IST05.
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 10
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 11
4o Trabalho
Objectivos
Comunicacao com os dispositivos de entrada e saıda. Manipulacao dos dispositivos da placa IST05
Topicos
1. Entradas e saıdas
Nota: No final da aula devera ser entregue o Anexo II-4, contendo todas as respostas as questoes do
referido Anexo, identificadas com o sımbolo ⇒.
Enunciado
1. Entradas/saıdas
1.1. Analise o programa aula3 1.as e verifique a forma como sao implementadas a escrita noLCD e a deteccao do premir dos botoes de pressao.
⇒ 1.2. Implemente um programa que permita mostrar um texto de tamanho arbitrario no LCD.O texto a mostrar no LCD encontra-se no ficheiro aula4.as e deve ser mostrado justificadoa esquerda. A linha a escrever deve ser escrita na linha de baixo do LCD e quando issoacontece o que estava na linha de baixo do LCD e escrito na linha de cima. Entre a escritade uma linha e outra devem passar aproximadamente 5 segundos. O scroll deve terminarno fim do texto.
• quando o interruptor 0 e colocado a 1 o scroll deve ser feito de 2 em 2 segundosaproximadamente;
• quando o interruptor 1 e colocado a 1 o scroll deve parar. O scroll volta a ser feitoquando o interruptor 1 tiver o valor 0;
• quando o interruptor 2 e colocado a 1 o LCD deve ser desligado. O scroll deve continuarmas nao e mostrado no LCD. Quando o interruptor 2 e colocado a 0 deve voltar amostrar o texto no LCD.
1.3. Demonstre o funcionamento do programa usando a placa IST05.
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 12
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 13
5o Trabalho
Objectivos
Interaccao com os restantes dispositivos da placa IST05. Analise do sistema de interrupcoes doprocessador P3.
Topicos
1. Interrupcoes
1.1. Interrupcoes na arquitectura P3
1.2. Instrucoes Assembly associadas as interrupcoes
Nota: No final da aula devera ser entregue o Anexo II-5, contendo todas as respostas as questoes do
referido Anexo, identificadas com o sımbolo ⇒.
Enunciado
1. Interrupcoes
1.1. Copie para a directoria de grupo o ficheiro aula5.as, que se encontra listado no Anexo I.
⇒ 1.2. Analise o programa e identifique:
⇒ a) o programa principal e a rotina de servico a interrupcao;
⇒ b) a tabela de vectores de interrupcao
⇒ c) a funcao das rotinas de servico a interrupcao.
1.3. Execute o programa e confirme as funcionalidades identificadas na pergunta 1.2.
⇒ 1.4. Justifique a existencia das instrucoes ENI e DSI na rotina EscCont.
⇒ 1.5. Altere o vector correpondente ao botao I0 para o valor 10h. Que alteracoes teve queefectuar no assembly para o programa ter o mesmo comportamento quando se executa.
2. Entradas/saıdas e interrupcoes
⇒ 2.1. Modifique o programa de scroll da aula passada, de forma a que o scroll seja feito de umem um segundo.
⇒ 2.2. implemente um relogio digital usando os displays de 7 segmentos em que os dois dıgitos daesquerda sao os minutos e os dois dıgitos da direita sao os segundos.
⇒ 2.3. altere o programa anterior de forma a que, ao se carregar no botao I0, o valor do relogiopasse a ser zero.
⇒ 2.4. altere o programa anterior de forma a que ao, se carregar no botao I1, o relogio pare. Orelogio retoma a contagem quando se pressiona o botao I2.
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 14
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 15
1a parte do Projecto
Objectivos
Avaliar a capacidade dos alunos de conceber, desenvolver e testar um programa simples em linguagemAssembly, utilizando os conceitos adquiridos nas aulas anteriores.
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 16
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 17
6o Trabalho
Objectivos
Introducao a µprogramacao. Analise de uma instrucao Assembly, em termos de µprogramacao.Modificacao do funcionamento de uma instrucao Assembly.
Topicos
1. Introducao a µprogramacao
1.1. A µprogramacao na arquitectura P3
1.2. Registos associados a µprogramacao
2. Analise de uma instrucao Assembly
2.1. Formatos e tipos de instrucoes Assembly
2.2. µinstrucoes
2.3. Fluxograma
2.4. µprograma de uma instrucao Assembly
3. Modificacao de uma instrucao Assembly
Nota: No final da aula devera ser entregue o Anexo II-6, contendo todas as respostas as questoes do
referido Anexo, identificadas com o sımbolo ⇒.
Enunciado
1. Introducao a µprogramacao. Analise de uma instrucao Assembly
1.1. Copie para a directoria de grupo o ficheiro aula6.as, que se encontra listado no Anexo I.Proceda a geracao do ficheiro executavel.
1.2. Seleccione no simulador a janela que contem a informacao referente a µprogramacao. Paratal, seleccione a opcao Ver Controlo, existente no menu Ver.
1.3. Inicie a execucao do programa, comecando por executar apenas a 1a instrucao. Para issoseleccione uma vez o botao Instrucao.
⇒ 1.4. Em seguida continue a execucao do programa ciclo-a-ciclo de relogio, seleccionando, umavez, o botao Clock. Tendo por base o conteudo do registo RI, identifique:
⇒ a) o tipo de instrucao Assembly.
⇒ b) o conteudo de cada um dos seus campos.
⇒ c) o modo de enderecamento utilizado, baseado nos valores obtidos na alınea b).
⇒ 1.5. Prossiga com a execucao do programa, ciclo-a-ciclo de relogio, e preencha a Tabela 1, doAnexo II-4. A tabela deve ser preenchida nao so com os uns e os zeros, mas tambem comas indiferencas.
⇒ 1.6. Identifique, no fluxograma representado no mesmo Anexo, a sequencia de accoes realizada.
⇒ 1.7. Recorrendo ao conjunto de informacao existente no Anexo do “Manual do Simulador para oProcessador P3”, identifique o µprograma da instrucao em causa. Preencha as duas partesTabela 2, do Anexo II-6, de acordo com a informacao obtida. A tabela deve ser preenchidanao so com os uns e os zeros, mas tambem com as indiferencas.
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 18
2. Modificacao de uma instrucao Assembly
Pretende-se modificar o µprograma que obteve na pergunta 1.5, de forma a substituir o modode enderecamento relativo:
MOV M[Rx+W], R1
pelo modo de enderecamento indirecto por memoria:
MOV M[Rx+M[W]], R1
⇒ 2.1. Indique em que fase(s) do fluxograma e que se efectuam as alteracoes. Justifique.
⇒ 2.2. Analise a arquitectura P3, representada na figura do Anexo II-6. Coloque na figura osvalores um ou zero para cada sinal de forma a implementar a microinstrucao pretendidapara realizar o enderecamento indirecto por memoria.
⇒ 2.3. Modifique o µprograma, introduzindo-lhe as alteracoes que identificou na pergunta 2.2.
2.4. Introduza no simulador as alteracoes que efectuou no µcodigo. Para o efeito, proceda comoa seguir se indica:
• gere um ficheiro control.rom, com a descricao das alteracoes a efectuar no µcodigo.Cada linha do ficheiro deve conter a seguinte informacao:
<endereco da µinstrucao que vai ser substituıda> <nova µinstrucao>
• efectue o carregamento do referido ficheiro no simulador, seleccionando a opcao Car-
rega ROM de Controlo, existente no menu Ficheiro.
⇒ 2.5. Repita a execucao do programa, ciclo-a-ciclo de relogio. Recorra a informacao da janela deµprogramacao para efectuar o teste do µcodigo alterado.
Quando terminar o teste, preencha a Tabela 3, do Anexo II-4. A tabela deve ser preenchidanao so com os uns e os zeros mas tambem com as indiferencas. Justifique o conteudo doregisto R1, apos a execucao do programa.
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 19
7o Trabalho
Objectivos
Implementacao de uma nova instrucao Assembly.
Topicos
1. Implementacao de uma nova instrucao Assembly
Nota: No final da aula devera ser entregue o Anexo II-7, contendo todas as respostas as questoes do
referido Anexo, identificadas com o sımbolo ⇒.
Enunciado
1. Introducao de uma nova instrucao Assembly
Utilizando os conhecimentos adquiridos sobre µprogramacao, pretende-se acrescentar ao con-junto de instrucoes Assembly disponıveis na arquitectura P3 a seguinte instrucao:
SXT op
Esta instrucao estende o sinal de um operando de 8 bits para um operando de 16 bits. Nao deveser alterado o valor de nenhum bit de estado.
Ex: Se op = 5Ah o resultado devera ser 005Ah. Se op = A5h o resultado devera ser FFA5h.
Considere que o opcode desta instrucao e: 16h.
O trabalho devera ser realizado de acordo com as seguintes fases:
⇒ 1.1. especificacao do µprograma que realiza a instrucao em liguagem de transferencia de registos.Na tabela deve ser preenchido o endereco simbolico e a µintrucao em RTL;
⇒ 1.2. codificacao das µintrucoes de acordo com a arquitectura P3. Para tal todos os campos databela devem ser preenchida nao so com os uns e os zeros mas tambem com as indiferencas;
⇒ 1.3. especificacao dos enderecos/valores do µprograma a carregar numa zona livre da ROM deControlo e carregamento do inıcio deste na ROM de mapeamento A na posicao correspon-dente ao opcode;
⇒ 1.4. concepcao de um programa Assembly, responsavel pelo teste da nova instrucao.
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 20
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 21
2a parte do Projecto
Objectivos
Avaliar a capacidade dos alunos de conceber e desenvolver um µprograma de uma nova instrucaoAssembly, utilizando os conceitos adquiridos nas aulas anteriores. Avaliar ainda a capacidade dedesenvolvimento de um programa complexo em linguagem Assembly fazendo uso dessa nova instru-cao.
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 22
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 23
ANEXO I – Listagens dos programas
aula1 1.as
; Programa aula1_1.as
; ZONA I: Definicao de constantes
; Pseudo-instrucao : EQU
CR EQU 0Ah
FIM_TEXTO EQU ’@’
IO_READ EQU FFFFh
IO_WRITE EQU FFFEh
IO_STATUS EQU FFFDh
SP_INICIAL EQU FDFFh
; ZONA II: definicao de variaveis
; Pseudo-instrucoes : WORD - palavra (16 bits)
; STR - sequencia de caracteres.
; Cada caracter ocupa 1 palavra
ORIG 8000h
VarTexto1 STR ’LEIC !!’, FIM_TEXTO
VarTexto2 STR ’ Arquitectura de Computadores’, FIM_TEXTO
VarTexto3 STR ’1o Ano - 2o Semestre’, FIM_TEXTO
VarMenu0 STR ’** Instrucoes para a utilizacao do programa Aula1_1.as **’, FIM_TEXTO
VarMenu1 STR ’Visualizacao de uma mensagem - prima 1, 2 ou 3’, FIM_TEXTO
VarMenu2 STR ’Fim de execucao - prima outra tecla’, FIM_TEXTO
VarPrompt STR ’ > ’, FIM_TEXTO
TextoFim STR ’Fim de execucao!’, FIM_TEXTO
; ZONA III: codigo
; conjunto de instrucoes Assembly, ordenadas de forma a realizar
; as funcoes pretendidas
ORIG 0000h
JMP inicio
; LeCar: Rotina que efectua a leitura de um caracter proveniente do teclado.
; Entradas: ---
; Saidas: R1 - caracter lido
; Efeitos: alteracao do registo R1
LeCar: CMP R0, M[IO_STATUS]
BR.Z LeCar
MOV R1, M[IO_READ]
RET
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 24
; EscCar: Rotina que efectua a escrita de um caracter para o ecran.
; O caracter pode ser visualizado na janela de texto.
; Entradas: pilha - caracter a escrever
; Saidas: ---
; Efeitos: alteracao do registo R1
; alteracao da posicao de memoria M[IO]
EscCar: MOV R1, M[SP+2]
MOV M[IO_WRITE], R1
RETN 1
; MudaLinha: Rotina que efectua a escrita de um caracter de mudanca de linha.
; Entradas: ---
; Saidas: ---
; Efeitos: ---
MudaLinha: PUSH R1
PUSH CR
CALL EscCar
POP R1
RET
; EscString: Rotina que efectua a escrita de uma cadeia de caracter, terminada
; pelo caracter FIM_TEXTO. Pode-se definir como terminador qualquer
; caracter ASCII.
; Entradas: R2 - apontador para o inicio da cadeia de caracteres
; Saidas: ---
; Efeitos: ---
EscString: PUSH R1
PUSH R2
Ciclo: MOV R1, M[R2]
CMP R1, FIM_TEXTO
BR.Z FimEsc
PUSH R1
CALL EscCar
INC R2
BR Ciclo
FimEsc: CALL MudaLinha
POP R2
POP R1
RET
; EscMenu: Rotina que efectua a escrita do menu que contem as instrucoes de
; utilizacao do programa.
; Entradas: --
; Saidas: ---
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 25
; Efeitos: ---
EscMenu: PUSH R2
CALL MudaLinha
CALL MudaLinha
MOV R2, VarMenu0
CALL EscString
CALL MudaLinha
MOV R2, VarMenu1
CALL EscString
MOV R2, VarMenu2
CALL EscString
CALL MudaLinha
POP R2
RET
; EscPrompt: Rotina que efectua a escrita do prompt, que indica o inicio da
; leitura
; Entradas: --
; Saidas: ---
; Efeitos: ---
EscPrompt: PUSH R2
CALL MudaLinha
MOV R2, VarPrompt
CALL EscString
POP R2
RET
; ProgramaPrincipal: programa que recebe um caracter do teclado e, de acordo
; com o caracter recebido (1, 2 ou 3), imprime uma
; de tres mensagens. Caso receba um caracter diferente,
; termina a execucao.
inicio: MOV R7, SP_INICIAL
MOV SP, R7
CALL EscMenu
Opcao: CALL EscPrompt
CALL LeCar
CALL MudaLinha
CMP R1, ’1’
BR.Z Texto1
CMP R1, ’2’
BR.Z Texto2
CMP R1, ’3’
BR.NZ EscFim
Texto3: MOV R2, VarTexto3
CALL EscString
BR Opcao
Texto2: MOV R2, VarTexto2
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 26
CALL EscString
BR Opcao
Texto1: MOV R2, VarTexto1
CALL EscString
BR Opcao
EscFim: MOV R2, TextoFim
CALL EscString
Fim: BR Fim
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 27
aula1 2.as
; Programa aula1_2.as
LetraA EQU ’A’ ; caracter ASCII
ConstUmByte EQU 0fh ; hexadecimal
ConstUmaWord EQU 65535 ; decimal
ORIG 8000h
VarUmByte WORD 12h
VarOutroByte WORD 0fh
VarUmaWord WORD 1234h
VarUmaString STR ’Arquitectura de Computadores’
ORIG 0000h
inicio: MOV R0, LetraA
MOV R1, ConstUmByte
MOV R2, ConstUmaWord
MOV R3, R2
MOV R4, M[R1+VarOutroByte]
MOV R5, M[VarOutroByte]
MOV R6, M[SP]
MOV R7, M[PC+ConstUmByte]
; Aqui devera’ colocar o seu codigo
Fim: BR Fim
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 28
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 29
aula2.as
; Programa aula2.as
; NOTA: Este programa nao esta’ comentado INTENCIONALMENTE !!
FIM_STR EQU ’@’
ORIG 8000h
VarStrOrigem STR ’Arquitectura de Computadores @’
VarStrDestino TAB 30
ORIG 0000h
inicio: MOV R1, VarStrDestino
MOV R2, VarStrOrigem
ciclo: MOV R3, M[R2]
CMP R3, FIM_STR
BR.Z meio
MOV M[R1], R0
INC R1
INC R2
BR ciclo
meio: MOV R3, M[R2]
MOV M[R1], R3
DEC R2
DEC R1
CMP R1, VarStrDestino
BR.NN meio
fim: BR fim
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 30
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 31
aula3 1.as
; Programa aula3_1.as
; ZONA I: Definicao de constantes
; Pseudo-instrucao : EQU
CR EQU ’ ’
FIM_TEXTO EQU ’@’
IO_READ EQU FFFFh
LCD_CTRL EQU FFF4h
LCD_WRITE EQU FFF5h
IO_STATUS EQU FFFDh
SP_INICIAL EQU FDFFh
INT_INIT EQU FFFAh
INT_MASK EQU 0000000000000111b
LIMPA_LCD EQU 8020h
LCD_MASK EQU 801Fh
INIT_CURSOR EQU 8000h
; ZONA II: definicao de variaveis
; Pseudo-instrucoes : WORD - palavra (16 bits)
; STR - sequencia de caracteres.
; Cada caracter ocupa 1 palavra
ORIG 8000h
VarTexto0 STR ’LEIC !!’, FIM_TEXTO
VarTexto1 STR ’Arquitectura de Computadores’, FIM_TEXTO
VarTexto2 STR ’1o Ano - 2o Semestre’, FIM_TEXTO
VarMenu1 STR ’Ver mensagem - prima 0, 1 ou 2’, FIM_TEXTO
TextoFim STR ’Fim de execucao!’, FIM_TEXTO
; Tabela de interrupcoes
ORIG FE00h
INT0 WORD Opcao0
INT1 WORD Opcao1
INT2 WORD Opcao2
; ZONA III: codigo
; conjunto de instrucoes Assembly, ordenadas de forma a realizar
; as funcoes pretendidas
ORIG 0000h
JMP inicio
; Opcao0: Rotina de interrupcao que efectua a escrita do texto VarText0 no LCD
Opcao0: PUSH R2
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 32
CALL IniciaLCD
MOV R2, VarTexto0
CALL EscString
POP R2
RTI
; Opcao1: Rotina de interrupcao que efectua a escrita do texto VarText1 no LCD
Opcao1: PUSH R2
CALL IniciaLCD
MOV R2, VarTexto1
CALL EscString
POP R2
RTI
; Opcao2: Rotina de interrupcao que efectua a escrita do texto VarText2 no LCD
Opcao2: PUSH R2
CALL IniciaLCD
MOV R2, VarTexto2
CALL EscString
POP R2
RTI
; EscCar: Rotina que efectua a escrita de um caracter para no LCD.
; Entradas: pilha - caracter a escrever
; R3 - posicao de escrita
; Saidas: ---
; Efeitos: alteracao do registo R1
; alteracao do registo R3
EscCar: MOV M[LCD_CTRL], R3 ; posiciona cursor do LCD
INC R3
AND R3, LCD_MASK
MOV R1, M[SP+2]
MOV M[LCD_WRITE], R1
RETN 1
; IniciaLCD: Rotina que inicializa o LCD
; Entradas: ---
; Saidas: ---
; Efeitos: ---
IniciaLCD: MOV R3, LIMPA_LCD
MOV M[LCD_CTRL], R3
MOV R3, INIT_CURSOR
RET
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 33
; EscString: Rotina que efectua a escrita de uma cadeia de caracter, terminada
; pelo caracter FIM_TEXTO. Pode-se definir como terminador qualquer
; caracter ASCII.
; Entradas: R2 - apontador para o inicio da cadeia de caracteres
; Saidas: ---
; Efeitos: ---
EscString: PUSH R1
PUSH R2
Ciclo: MOV R1, M[R2]
CMP R1, FIM_TEXTO
BR.Z FimEsc
PUSH R1
CALL EscCar
INC R2
BR Ciclo
FimEsc: POP R2
POP R1
RET
; EscMenu: Rotina que efectua a escrita do menu que contem as instrucoes de
; utilizacao do programa.
; Entradas: --
; Saidas: ---
; Efeitos: ---
EscMenu: PUSH R2
MOV R2, VarMenu1
CALL EscString
POP R2
RET
; Programa Principal: programa que recebe um caracter do teclado e, de acordo
; com a tecla premida (0, 1 ou 2), imprime uma
; de tres mensagens.
inicio: MOV R7, SP_INICIAL
MOV SP, R7
MOV R7, INT_MASK
MOV M[INT_INIT], R7
ENI
MOV R3, INIT_CURSOR
CALL EscMenu
Fim: BR Fim
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 34
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 35
aula3 2.as
; Programa aula3_2.as
; definicao de variaveis
ORIG 8000h
SP_INICIAL EQU FDFFh
NUM WORD 7
; codigo
ORIG 0000h
JMP inicio
; fact: Rotina de calculo do factorial.
; Entradas: R1 numero a calcular
; Saidas: R1 resultado
; Efeitos: altera R1
fact: CMP R1, R0
BR.NP fact0 ; termina se valor dado for <= 0
PUSH R2
PUSH R3
MOV R2, 1 ; R2 contem o valor acumulado da multiplicacao
ciclo: MOV R3, R1 ; R3 contem o valor a multiplicar pelo acumulado.
; no inicio do ciclo e’ igual ao valor dado
MUL R3, R2 ; multiplica (o valor de R3 e’ ignorado)
DEC R1 ; decrementa valor a multiplicar
BR.NZ ciclo
MOV R1, R2 ; R1 fica com o resultado
endfact: POP R3
POP R2
RET
fact0: MOV R1, 1 ; R1 fica com o resultado
RET
; Programa Principal
inicio: MOV R7, SP_INICIAL
MOV SP, R7
MOV R1, M[NUM]
CALL fact
fim: BR fim
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 36
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 37
aula4.as
FIM_TEXTO EQU ’@’
ORIG 8000h
Texto STR ’Both of the men had been trained for this moment, ’
Texto1 STR ’their lives had been a preparation for it, they ’
Texto2 STR ’had been selected at birth as those who would ’
Texto3 STR ’witness the answer, but even so they found ’
Texto4 STR ’themselves gasping and squirming like excited ’
Texto5 STR ’children.’, FIM_TEXTO
Texto6 STR ’"And you are ready to give it to us?" ’
Texto7 STR ’urged Loonquawl.’, FIM_TEXTO
Texto8 STR ’"I am."’, FIM_TEXTO
Texto9 STR ’"Now?"’, FIM_TEXTO
Texto10 STR ’"Now," said Deep Thought.’, FIM_TEXTO
Texto11 STR ’They both licked their dry lips.’, FIM_TEXTO
Texto12 STR ’"Though I do not think," added Deep Thought, ’
Texto13 STR ’"that you are going to like it."’, FIM_TEXTO
Texto14 STR ’"Does not matter!" said Phouchg. ’
Texto15 STR ’"We must know it! Now!"’, FIM_TEXTO
Texto16 STR ’"Now?" inquired Deep Thought.’, FIM_TEXTO
Texto17 STR ’"Yes! Now ..."’, FIM_TEXTO
Texto18 STR ’"Alright," said the computer and settled ’
Texto19 STR ’into silence again. The two men fidgeted. ’
Texto20 STR ’The tension was unbearable.’, FIM_TEXTO
Texto21 STR ’"You are really not going to like it," ’
Texto22 STR ’observed Deep Thought.’, FIM_TEXTO
Texto23 STR ’"Tell us!"’, FIM_TEXTO
Texto24 STR ’"Alright," said Deep Thought. "The Answer to the ’
Texto25 STR ’Great Question ..."’, FIM_TEXTO
Texto26 STR ’"Yes ...!"’, FIM_TEXTO
Texto27 STR ’"Of Life, the Universe and Everything ..." ’
Texto28 STR ’said Deep Thought.’, FIM_TEXTO
Texto29 STR ’"Yes ...!"’, FIM_TEXTO
Texto30 STR ’"Is ..." said Deep Thought, and paused.’, FIM_TEXTO
Texto31 STR ’"Yes ...!"’, FIM_TEXTO
Texto32 STR ’"Is ..."’, FIM_TEXTO
Texto33 STR ’"Yes ...!!!...?"’, FIM_TEXTO
Texto34 STR ’"Forty-two," said Deep Thought, with infinite ’
Texto35 STR ’majesty and calm.’, FIM_TEXTO
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 38
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 39
aula5.as
; Aula5.as - exemplo de rotina de interrupcao
IO_WRITE EQU fffeh
SP_INICIAL EQU fdffh
TAB_INT EQU fe00h
INT_INIT EQU fffah
INT_MASK EQU 0000000000000001b
; Palavra de memoria que contem a variavel de contagem
ORIG 8000h
Contador WORD 0000h
; Tabela de interrupcoes
ORIG fe00h
INT0 WORD ResetCont
; Codigo
ORIG 0000h
JMP inicio
; ResetCont: Rotina que faz o reset do contador
; Entradas: ---
; Saidas: ---
; Efeitos: alteracao do conteudo da posicao de memoria M[Contador]
ResetCont: MOV M[Contador], R0
RTI
; ContHex: Rotina que incrementa o contador
; Entradas: M[Contador] - contador
; Saidas: ---
; Efeitos: alteracao do conteudo da posicao de memoria M[Contador]
ContHex: INC M[Contador]
RET
; HexAscii: Rotina que efectua a conversao de hexadecimal para ASCII
; Entradas: R1 - valor (hexadecimal) a converter
; Saidas: R1 - valor (ASCII) convertido
; Efeitos: alteracao do registo R1
HexAscii: CMP R1, 10
BR.NN Maior9
ADD R1, ’0’
BR FimHexAscii
Maior9: SUB R1, 10
ADD R1, ’A’
FimHexAscii: RET
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 40
; EscCont: Rotina que efectua a escrita do contador
; Entradas: ---
; Saidas: ---
; Efeitos: ---
EscCont: PUSH R2
DSI
MOV R2, 4
Ciclo: CALL ProcNibble
DEC R2
BR.NZ Ciclo
ENI
CALL EscBranco
POP R2
RET
; ProcNibble: Rotina que efectua o processamento de cada nibble do contador
; Entradas: M[Contador]
; Saidas: M[Contador]
; Efeitos: ---
ProcNibble: PUSH R1
ROL M[Contador], 4
MOV R1, M[Contador]
AND R1, 000fh
CALL HexAscii
PUSH R1
CALL EscCar
POP R1
RET
; EscBranco: Rotina que efectua a escrita de um espaco
; Entradas: ---
; Saidas: ---
; Efeitos: ---
EscBranco: PUSH R1
MOV R1, ’ ’
PUSH R1
CALL EscCar
POP R1
RET
; EscCar: Rotina que efectua a escrita de um caracter para o ecran.
; O caracter pode ser visualizado na janela de texto.
; Entradas: pilha - caracter a escrever
; Saidas: ---
; Efeitos: alteracao do registo R1
EscCar: POP R1
POP M[IO_WRITE]
PUSH R1
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 41
RET
inicio: MOV R7, SP_INICIAL
MOV SP, R7
MOV R7, INT_MASK
MOV M[INT_INIT], R7
ENI
CicloCont: CALL EscCont
CALL ContHex
BR CicloCont
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 42
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 43
aula6.as
; Programa aula6.as - estudo da microprogramacao
INDEX EQU 8000h
ORIG 8000h
Variavel WORD 8002h
ORIG 0000h
inicio: MOV R1, 10h
alterar: MOV M[R2+INDEX], R1
fim: BR fim
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 44
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 45
Grupo: Turno:
No Nome:
No Nome:
No Nome:
ANEXO II-1 – Respostas as questoes do 1o trabalho
2. Introducao ao ambiente de laboratorio
2.1. INICIO = FIM =
3. Introducao a linguagem de programacao Assembly
3.1.
; Programa aula1_2.as
LetraA EQU ’A’ ; caracter ASCII
ConstUmByte EQU 0fh ; hexadecimal
ConstUmaWord EQU 65535 ; decimal
ORIG 8000h
VarUmByte WORD 12h
VarOutroByte WORD 0fh
VarUmaWord WORD 1234h
VarUmaString STR ’Arquitectura de Computadores’
ORIG 0000h
inicio: MOV R0, LetraA
MOV R1, ConstUmByte
MOV R2, ConstUmaWord
MOV R3, R2
MOV R4, M[R1+VarOutroByte]
MOV R5, M[VarOutroByte]
MOV R6, M[SP]
MOV R7, M[PC+ConstUmByte]
; Aqui devera’ colocar o seu codigo
Fim: BR Fim
3.2.
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 46
3.3.
Tabela 1: Conteudo dos registos depois da execucao do programa aula1 2.exe
R0 R1 R2 R3 R4 R5 R6 R7
— — — —
3.4.
Tabela 2: Identificacao dos modos de enderecamento
Instrucao Modo de enderecamentoMOV R0, LetraA
MOV R1, ConstUmByte
MOV R2, ConstUmaWord
MOV R3, R2
MOV R4, M[R1+VarOutroByte]
MOV R5, M[VarOutroByte]
MOV R6, M[SP+3]
MOV R7, M[PC+ConstUmByte]
3.5.
M[8003h] =
3.6.
Tabela 3: Conteudo dos registos depois da execucao do programa aula1 2.exe
R0 R1 R2 R3 R4 R5 R6 R7
3.7. a)
b)
c)
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 47
Grupo: Turno:
No Nome:
No Nome:
No Nome:
ANEXO II-2 – Respostas as questoes do 2o trabalho
1. Instrucoes de salto. Analise de um programa
1.1.
a)Salto incondicional
Salto condicional
b)
c)
1.4.
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 48
2.
2.1.
a)
b)
c)
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 49
2.2.
a)
b)
c)
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 50
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 51
Grupo: Turno:
No Nome:
No Nome:
No Nome:
ANEXO II-3 – Respostas as questoes do 3o trabalho
1. Analise de rotinas
1.3.
1.5.
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 52
1.6.
1.7.
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 53
Grupo: Turno:
No Nome:
No Nome:
No Nome:
ANEXO II-4 – Respostas as questoes do 4o trabalho
1. Entradas/Saıdas
1.2.
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 54
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 55
Grupo: Turno:
No Nome:
No Nome:
No Nome:
ANEXO II-5 – Respostas as questoes do 5o trabalho
1. Interrupcoes
1.2.
a)
b)
c)
1.4.
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 56
1.5.
2.
2.1. Anote aqui o codigo que desenvolveu:
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 57
2.2. Anote aqui o codigo que desenvolveu:
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 58
2.3. Anote aqui o codigo que desenvolveu:
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 59
2.4. Anote aqui o codigo que desenvolveu:
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 60
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 61
Grupo: Turno:
No Nome:
No Nome:
No Nome:
ANEXO II-6 – Respostas as questoes do 6o trabalho
1. Introducao a µprogramacao. Analise de uma instrucao Assembly.
1.3.
a)
b)
c)
1.4.
Tabela 1: Conteudo dos registos durante a execucao ciclo-a-ciclo de relogio.
µinstrucao CAR SBR RI R8 R9 R10 R11 R12 R13 R14 R15 R1
0x8060001f 000
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 62
1.5. Fluxograma
Carregamentoda Instrução
Execuçãoda Instrução
Interrupções
Execuçãoda Instrução
Execuçãoda Instrução
Execuçãoda Instrução
(TEST, CMP)
OPCODE
(PUSH)
OPCODE=01...
Teste de
EscritaResultado
OPCODE=11...OPCODE=10...OPCODE=00...
Carregamentodo Operando
Carregamentodos Operandos
Carregamentodo Operando
1.6. A preencher na tabela da pagina seguinte
2. Modificacao de uma instrucao Assembly.
2.1.
Instituto Superior Tecnico
Arq
uitectu
rade
Com
puta
dores
-G
uia
de
Labora
torio
63
End.
Sim.Transferencia de registos F M5 SR1SR2
IAK FM CALU MAMBM2MRB RB WMWR MD MAD RAD
LS MCOND CC LI LF CONST / NA
IF0 RI←M[PC] IF0
Legenda: No Ciclos Max Med Min
0 - Sinal inactivo de Relogio
1 - Sinal activo
X - Sinal indiferente
Institu
toSuperio
rT
ecnico
Arquitectura de Computadores - Guia de Laboratorio 64
2.2.
IR0
IR3−1
3
MREGISTO DE INSTRUÇÃO
62
SR1
0 1SR2 MUX1
SLI
OP
1
z
cEINT
MU
XCO
ND
3
0
1
2
M 0M 1
7
6
5
4
MCOND
3
CC
S
MU
X6
EINT
ZCNO
0
1
2
3
I 5
P 4CAR
+1 9
3
9
9
2
99
MUX50 1 2 3
SBR
99
NA
0 1MUX4
LSF
M5COND
F
END AEND A
32
NA
MICRO−INSTRUÇÃO
01
0
10
MU
XA
D1
0
MU
XRB1
MU
X3
MU
X2
4
IR2IR1
M2 MRB
M2 S
RB
IR15
RAD
4
4
4 4
44
4
MAD
SelAD
SelB
ROM A ROM B
ROM
Controlo
0 1 2 3
0 1 0 1
F F
F
CULA
ULA
RI
Estado
16
2
Memória
16 16
1616
MD
16
BUS A
RERegisto de Estado
W
4
0000
16
11
5000h
4 5FOUT
FR
5FIN
MUXD
MA
BUS B
F
CONST12LIF
WM
EndereçoEscrita de dados
16164
LF
4FM
MBMUXA MUXB
D
RegistosBanco de
Reset
WR
SelBSelAD
44
16
A B
Leitura de dados
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 65
2.3.
Endereco µinstrucao
2.5.
Tabela 3: Conteudo dos registos durante a execucao ciclo-a-ciclo de relogio.
µinstrucao CAR SBR RI R8 R9 R10 R11 R12 R13 R14 R15 R1
0x8060001f 000
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 66
Instituto Superior Tecnico
Arquitectura de Computadores - Guia de Laboratorio 67
Grupo: Turno:
No Nome:
No Nome:
No Nome:
ANEXO II-7 – Respostas as questoes do 7o trabalho
1.
1.1. A preencher na tabela da pagina seguinte
1.2. A preencher na tabela da pagina seguinte
1.3. A preencher na tabela da pagina seguinte
1.4.
Instituto Superior Tecnico
Arq
uitec
tura
de
Com
puta
dore
s-G
uia
de
Labora
tori
o68
End.
Sim.Transferencia de registos F M5 SR1SR2
IAK FM CALU MAMBM2MRB RB WMWR MD MAD RAD
End ROMValor
LS MCOND CC LI LF CONST / NA Controlo
IF0 RI←M[PC] IF0
Legenda: No Ciclos Max Med Min Endereco Valor
0 - Sinal inactivo de Relogio ROM A
1 - Sinal activo
X - Sinal indiferente
Inst
ituto
Super
ior
Tec
nic
o