68
LICENCIATURA EM ENGENHARIA INFORM ´ ATICA E DE COMPUTADORES Arquitectura de Computadores Ano lectivo de 2004/2005 Guia de Laborat´ orio INSTITUTO SUPERIOR T ´ ECNICO

Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

LICENCIATURA EM ENGENHARIA INFORMATICA E DE COMPUTADORES

Arquitectura de Computadores

Ano lectivo de 2004/2005

Guia de Laboratorio

INSTITUTO SUPERIOR TECNICO

Page 2: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

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

Page 3: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

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

Page 4: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

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

Page 5: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

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

Page 6: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

Arquitectura de Computadores - Guia de Laboratorio 6

Instituto Superior Tecnico

Page 7: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

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

Page 8: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

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

Page 9: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

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

Page 10: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

Arquitectura de Computadores - Guia de Laboratorio 10

Instituto Superior Tecnico

Page 11: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

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

Page 12: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

Arquitectura de Computadores - Guia de Laboratorio 12

Instituto Superior Tecnico

Page 13: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

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

Page 14: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

Arquitectura de Computadores - Guia de Laboratorio 14

Instituto Superior Tecnico

Page 15: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

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

Page 16: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

Arquitectura de Computadores - Guia de Laboratorio 16

Instituto Superior Tecnico

Page 17: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

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

Page 18: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

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

Page 19: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

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

Page 20: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

Arquitectura de Computadores - Guia de Laboratorio 20

Instituto Superior Tecnico

Page 21: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

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

Page 22: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

Arquitectura de Computadores - Guia de Laboratorio 22

Instituto Superior Tecnico

Page 23: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

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

Page 24: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

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

Page 25: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

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

Page 26: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

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

Page 27: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

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

Page 28: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

Arquitectura de Computadores - Guia de Laboratorio 28

Instituto Superior Tecnico

Page 29: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

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

Page 30: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

Arquitectura de Computadores - Guia de Laboratorio 30

Instituto Superior Tecnico

Page 31: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

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

Page 32: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

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

Page 33: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

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

Page 34: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

Arquitectura de Computadores - Guia de Laboratorio 34

Instituto Superior Tecnico

Page 35: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

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

Page 36: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

Arquitectura de Computadores - Guia de Laboratorio 36

Instituto Superior Tecnico

Page 37: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

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

Page 38: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

Arquitectura de Computadores - Guia de Laboratorio 38

Instituto Superior Tecnico

Page 39: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

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

Page 40: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

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

Page 41: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

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

Page 42: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

Arquitectura de Computadores - Guia de Laboratorio 42

Instituto Superior Tecnico

Page 43: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

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

Page 44: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

Arquitectura de Computadores - Guia de Laboratorio 44

Instituto Superior Tecnico

Page 45: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

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

Page 46: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

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

Page 47: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

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

Page 48: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

Arquitectura de Computadores - Guia de Laboratorio 48

2.

2.1.

a)

b)

c)

Instituto Superior Tecnico

Page 49: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

Arquitectura de Computadores - Guia de Laboratorio 49

2.2.

a)

b)

c)

Instituto Superior Tecnico

Page 50: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

Arquitectura de Computadores - Guia de Laboratorio 50

Instituto Superior Tecnico

Page 51: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

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

Page 52: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

Arquitectura de Computadores - Guia de Laboratorio 52

1.6.

1.7.

Instituto Superior Tecnico

Page 53: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

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

Page 54: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

Arquitectura de Computadores - Guia de Laboratorio 54

Instituto Superior Tecnico

Page 55: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

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

Page 56: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

Arquitectura de Computadores - Guia de Laboratorio 56

1.5.

2.

2.1. Anote aqui o codigo que desenvolveu:

Instituto Superior Tecnico

Page 57: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

Arquitectura de Computadores - Guia de Laboratorio 57

2.2. Anote aqui o codigo que desenvolveu:

Instituto Superior Tecnico

Page 58: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

Arquitectura de Computadores - Guia de Laboratorio 58

2.3. Anote aqui o codigo que desenvolveu:

Instituto Superior Tecnico

Page 59: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

Arquitectura de Computadores - Guia de Laboratorio 59

2.4. Anote aqui o codigo que desenvolveu:

Instituto Superior Tecnico

Page 60: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

Arquitectura de Computadores - Guia de Laboratorio 60

Instituto Superior Tecnico

Page 61: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

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

Page 62: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

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

Page 63: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

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

Page 64: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

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

Page 65: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

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

Page 66: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

Arquitectura de Computadores - Guia de Laboratorio 66

Instituto Superior Tecnico

Page 67: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

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

Page 68: Arquitectura de Computadores - INESC-IDalgos.inesc-id.pt/arq-comp/?download=guia-lab.pdf · Arquitectura de Computadores - Guia de Laborat orio 4 Enunciado 1. Come˘car uma sess~ao

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