Baixe o app para aproveitar ainda mais
Prévia do material em texto
LICENCIATURA EM ENGENHARIA INFORMÁTICA E DE COMPUTADORES Arquitectura de Computadores Ano lectivo de 2004/2005 Guia de Laboratório INSTITUTO SUPERIOR TÉCNICO Arquitectura de Computadores - Guia de Laboratório 2 Plano das aulas 1a Aula: 1o Trabalho 3 Introdução ao ambiente de laboratório. Introdução à linguagem de programação Assembly: instru- ções de transferência de dados e modos de endereçamento. Treino nos métodos de teste e de correcção de programas. 2a Aula: 2o Trabalho 7 Instruções aritméticas, lógicas e de salto. Treino na concepção, teste e correcção de pequenos programas. 3a Aula: 3o Trabalho 9 Noção de rotinas em Assembly e de métodos de passagem de parâmetros. 4a Aula: 4o Trabalho 11 Comunicação com os dispositivos de entrada e sáıda. Manipulação dos dispositivos da placa IST05 5a Aula: 5o Trabalho 13 Interacção com os restantes dispositivos da placa IST05. Análise do sistema de interrupções do processador P3. 6a Aula: 1a parte do Projecto 15 Avaliar 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 17 Introdução à µprogramação. Análise de uma instrução Assembly, em termos de µprogramação. Modificação do funcionamento de uma instrução Assembly. 8a Aula: 7o Trabalho 19 Implementação de uma nova instrução Assembly. 9a Aula: 2a parte do Projecto 21 Avaliar a capacidade dos alunos de conceber e desenvolver um µprograma de uma nova instru- ção Assembly, utilizando os conceitos adquiridos nas aulas anteriores. Avaliar ainda a capacidade de desenvolvimento de um programa complexo em linguagem Assembly fazendo uso dessa nova instrução. 10a Aula: 2a parte do projecto (conclusão). 11a Aula: Discussões. Instituto Superior Técnico Arquitectura de Computadores - Guia de Laboratório 3 1o Trabalho Objectivos Introdução ao ambiente de laboratório. Introdução à linguagem de programação Assembly: instruções de transferência de dados e modos de endereçamento. Treino nos métodos de teste e de correcção de programas. Tópicos 1. Funcionamento do laboratório 1.1. Estrutura de directorias 1.2. Metodologia de trabalho O corpo docente não se responsabiliza por trabalhos que tenham sido exclusivamente ar- mazenados no PC do laboratório. No final de cada aula os alunos deverão entregar o anexo respeitante à aula, que contém os resultados do trabalho realizado. 2. Introdução ao ambiente de laboratório 2.1. Ferramentas utilizadas para a programação em Assembly • Editor de texto: Qualquer um dos existentes • Assembler: p3as 2.2. Ferramenta utilizada para o teste e a execução do programas • Simulador: p3sim 3. Introdução à linguagem de programação Assembly 3.1. Estrutura de um programa 3.2. Directivas Assembly 3.3. Instruções de transferência de dados • Caso das transferências: – registo → registo – registo → memória – memória → registo – memória → memória • Exemplificação dos modos de endereçamento 4. Treino nos métodos de teste e correcção de programas • Utilização dos comandos: Janela Texto, Correr, Instrução, Escreve Registo e Es- creve Memória. Nota: No final da aula deverá ser entregue o Anexo II-1, contendo as respostas às questões identificadas a negrito. Instituto Superior Técnico Arquitectura de Computadores - Guia de Laboratório 4 Enunciado 1. Começar uma sessão Entre em sessão no PC, com o utilizador public e sem password. Coloque-se numa directoria temporária e crie uma directoria para o seu grupo. Copie para a directoria recém criada os ficheiros aula1 1.as e aula1 2.as, que se encontram listados no Anexo I. 2. Introdução ao ambiente de laboratório Utilizando o ficheiro aula1 1.as execute as seguintes funções: ⇒ 2.1. Proceda à assemblagem do programa, gerando os ficheiros executável e de referências. Para isso proceda como se indica em seguida: > p3as aula1 1.as <enter> p3as, Version 1.2, last modified 29/11/01, 16:57:16 Assembling completed with success, object file: aula1 1.exe References file: aula1 1.lis > Examine o ficheiro aula1 1.lis. Anote o valor dos endereços correspondentes às etiquetas inicio e fim. 2.2. Utilize o simulador p3sim para testar e executar o programa. Para isso, evoque o simulador da seguinte forma: > p3sim <enter> Identifique a informação contida nas várias janelas, bem como os diversos comandos dis- pońıveis. Seguidamente, efectue o carregamento do programa executável aula1 1.exe, através da execução da opção Carrega Programa, existente no menú Ficheiro. Verifique a altera- ção do conteúdo da janela de código. Analise o código desassemblado e compare-o com o do programa fonte. 2.3. Antes de iniciar a execução do programa, abra a janela de Entradas/Sáıdas. Para tal, selec- cione a opção Janela Texto, existente no menú Ver. Seguidamente, execute o programa, seleccionando o botão Corre. 3. Introdução à linguagem de programação Assembly Utilizando o ficheiro aula1 2.as, execute as seguintes funções: ⇒ 3.1. No troço de programa, que se encontra representado no Anexo II-1 identifique: ⇒ a) as zonas de definição de constantes, de dados e de código; ⇒ b) ińıcio e o fim do programa principal; ⇒ c) as pseudo-instruções existentes. Descreva as suas funções. ⇒ 3.2. Sem recorrer ao simulador, preencha a Tabela 1 (registos R0 a R3) do referido anexo. ⇒ 3.3. Proceda à geração do ficheiro executável e ao seu carregamento no simulador, utilizando os procedimentos descritos nas Secções 2.1 e 2.2, respectivamente. Execute o programa instrução a instrução, seleccionando o botão Instrução. Identifique os modos de endereçamento presentes em cada instrução e preencha a Tabela 2 do Anexo II-1. Justifique a diferença de comportamento do registo R0. Instituto Superior Técnico Arquitectura de Computadores - Guia de Laboratório 5 ⇒ 3.4. Indique que valor se encontra na posição de memória 8003h e justifique que valor é esse. ⇒ 3.5. Através da utlização do comando Esceve Registo, do menu Depuração, inicialize os registos R1 a R7, com o valor FFFFh. Utilizando o comando Escreve Memória, do mesmo menu, inicialize as posições de memória correspondentes às variáveis VarUmByte e VarOutroByte, também com o valor FFFFh. Repita a execução do programa, utilizando o comando Corre. Compare a informação dos registos com a informação que registou na Tabela 1 e registe as alterações verificadas na Tabela 3. ⇒ 3.6. Introduza no referido programa um conjunto de instruções de transferência de dados que permitam realizar funções que se descrevem nas aĺıneas seguintes. ⇒ a) Utilizando o modo de endereçamento directo, copiar o conteúdo do registo R4 para a posição de memória VarOutroByte. ⇒ b) Utilizando o modo de endereçamento indirecto por registo, copiar o conteúdo do registo R6 para a posição de memória VarUmaWord. ⇒ c) Copiar o conteúdo da posição de memória VarOutroByte para a posição de memória VarUmByte. Instituto Superior Técnico Arquitectura de Computadores - Guia de Laboratório 6 Instituto Superior Técnico Arquitectura de Computadores - Guia de Laboratório 7 2o Trabalho Objectivos Instruções aritméticas, lógicas e de salto. Treino na concepção, teste e correcção de pequenos progra- mas. Tópicos 1. Instruções aritméticas, lógicas e de salto 2. Programação Assembly 2.1. Análise de um programa 2.2. Construção de pequenos programas, a partir de uma especificação simples 3. Treino nos métodos de teste e de correcção de programas • Utilização dos comandos: Pontos de Paragem e Continua Nota: No final da aula deverá ser entregue o Anexo II-2, contendo todas as respostas às questões do referido Anexo, identificadas com o śımbolo ⇒. Enunciado 1. Instruções de salto. Análise de um programa Copie paraa directoria de grupo o ficheiro aula2.as, que se encontra listado no Anexo I. ⇒ 1.1. Por inspeçcão do referido ficheiro, identifique: ⇒ a) as instruções de salto incondicional e de salto condicional. Para cada instrução identi- ficada, indique em que condições é que o salto ocorre e para onde. ⇒ b) a função realizada pelo programa desde o ińıcio até à etiqueta meio. ⇒ c) a função realizada pelo programa desde a etiqueta meio até ao fim. 1.2. Com recurso ao simulador p3sim , execute o programa até à etiqueta meio. Para tal, proceda como a seguir se indica: • Comece por localizar, na janela de código, a linha correspondente a essa etiqueta, recorrendo à informação existente no ficheiro de referências (aula2.lis). • Introduza um ponto de paragem nessa linha. Para tal, seleccione a linha, seleccione o comando Pontos de Paragem, existente no menú Depuração, e seleccione os botões Adiciona e Fecha. • Seguidamente, execute o programa, seleccionando o botão Corre. Confirme a função identificada em 1.1.b), por análise do conteúdo da janela de memória. 1.3. Finalize a execução do programa, seleccionado o botão Continua até ser atingida a etiqueta fim. Confirme a função identificada em 1.1.c), por análise do conteúdo da janela de memória. ⇒ 1.4. Na janela onde se encontra o conteúdo da memória localize a zona de memória onde está codificada a instrução BR fim. Troque a instrução BR fim pela instrução JMP fim. Veri- fique novamente a codificação da instrução de salto. Justifique as alterações observadas. Instituto Superior Técnico Arquitectura de Computadores - Guia de Laboratório 8 2. Instruções aritméticas e lógicas. Concepção de programas ⇒ 2.1. Utilizando a linguagem Assembly do simulador P3, conceba um programa para realizar cada uma das funções que a seguir se descrevem. ⇒ a) Soma de dois números positivos de 32 bits. Os números a somar deverão estar em memória. Como cada posição de memória só contém 16 bits, cada número ocupará duas posições de memória. Assuma que o primeiro número começa na posição de memória com endereço Num1 e o segundo em Num2, devendo o resultado ser armazenado em duas posições de memória a partir do endereço Soma. Preencha os valores iniciais das posições de memória dos operandos através do comando Escreve Memória. Considere que: • a palavra mais significativa de cada número ocupa a posição de memória de endere- ço mais elevado. • a operação de adição se efectua através de registos, de acordo com o seguinte esquema: (R1,R2) ← (R1,R2) + (R3,R4) ⇒ b) Troca de octetos numa palavra de memória. O octeto mais significativo da palavra de memória deverá ocupar a posição menos significativa e vice-versa. Exemplo: Conteúdo inicial da posição de memória: 1234h Conteúdo final da posição de memória: 3412h ⇒ c) Descompactação da informação existente numa zona de memória. Cada nibble (4 bits) de uma palavra será colocado numa posição de memória separada. Considere que: • Existe uma posição de memória com o número de palavras a descompactar; • Tem que ser reservado espaço em memória onde fiquem colocados os dados da descompactação. Exemplo: DadosIniciais STR 1234h,5678h NumDados WORD 2 DadosFinais TAB 8 Em memória na posição DadosIniciais fica: 1234 5678 Em memória, após descompactação, na posição 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 o resultado dos testes realizados, bem como a sequência de acções que utilizou para realizar os referidos testes. Instituto Superior Técnico Arquitectura de Computadores - Guia de Laboratório 9 3o Trabalho Objectivos Noção de rotinas em Assembly e de métodos de passagem de parâmetros. Tópicos 1. Rotinas e métodos de passagem de parâmetros. Intruções de manipulação da pilha. 1.1. Instruções Assembly associadas à utilização de rotinas 1.2. Intruções de manipulação da pilha. 1.3. Métodos de passagem de parâmetros. 1.4. Interacção com a placa IST05. 2. Concepção de programas com rotinas que permitam aplicar os conceitos anteriores. Nota: No final da aula deverá ser entregue o Anexo II-3, contendo todas as respostas às questões do referido Anexo, identificadas com o śımbolo ⇒. Enunciado 1. Rotinas 1.1. Analise o programa aula3 1.as e identifique as rotinas existentes, as suas funcionalidades e os métodos de passagem de parâmetros utilizados. 1.2. Introduza um ponto de paragem no ińıcio da rotina EscString, utilizando o procedimento descrito na aĺınea 1.2 do trabalho anterior. Execute o programa até ao ponto de paragem e, a partir dáı, execute a rotina EscString instrução a instrução. Analise a evolução da pilha. ⇒ 1.3. Analise o programa aula3 2.as. Identifique o método de passagem de parâmetros da rotina fact. 1.4. Execute o programa. Verifique que o factorial de um número é calculado correctamente. ⇒ 1.5. Reescreva o programa de modo a que a passagem de parâmetros da rotina fact seja pela pilha. ⇒ 1.6. Tomando como ponto de partida o programa de aĺınea anterior reescreva a rotina fact de modo a que o cálculo do factorial seja efectuado de forma recursiva (a rotina chama-se a si própria). ⇒ 1.7. Consegue-se alterar a rotina fact da aĺınea anterior de modo a que a passagem de parâmetros seja efectuada por registo? Justifique. 2. Placa IST05 2.1. Execute o programa aula3 1.as na placa IST05. Instituto Superior Técnico Arquitectura de Computadores - Guia de Laboratório 10 Instituto Superior Técnico Arquitectura de Computadores - Guia de Laboratório 11 4o Trabalho Objectivos Comunicação com os dispositivos de entrada e sáıda. Manipulação dos dispositivos da placa IST05 Tópicos 1. Entradas e sáıdas Nota: No final da aula deverá ser entregue o Anexo II-4, contendo todas as respostas às questões do referido Anexo, identificadas com o śımbolo ⇒. Enunciado 1. Entradas/sáıdas 1.1. Analise o programa aula3 1.as e verifique a forma como são implementadas a escrita no LCD e a detecção do premir dos botões de pressão. ⇒ 1.2. Implemente um programa que permita mostrar um texto de tamanho arbitrário no LCD. O texto a mostrar no LCD encontra-se no ficheiro aula4.as e deve ser mostrado justificado à esquerda. A linha a escrever deve ser escrita na linha de baixo do LCD e quando isso acontece o que estava na linha de baixo do LCD é escrito na linha de cima. Entre a escrita de uma linha e outra devem passar aproximadamente 5 segundos. O scroll deve terminar no fim do texto. • quando o interruptor 0 é colocado a 1 o scroll deve ser feito de 2 em 2 segundos aproximadamente; • quando o interruptor 1 é colocado a 1 o scroll deve parar. O scroll volta a ser feito quando o interruptor 1 tiver o valor 0; • quando o interruptor 2 é colocado a 1 o LCD deve ser desligado. O scroll deve continuar mas não é mostrado no LCD. Quando o interruptor 2 é colocado a 0 deve voltar a mostrar o texto no LCD. 1.3. Demonstre o funcionamento do programa usando a placa IST05. Instituto Superior Técnico Arquitectura de Computadores - Guia de Laboratório 12 Instituto Superior Técnico Arquitectura de Computadores - Guia de Laboratório 13 5o Trabalho Objectivos Interacção com os restantes dispositivos da placa IST05. Análise do sistema de interrupções do processador P3. Tópicos 1. Interrupções 1.1. Interrupções na arquitectura P3 1.2. Instruções Assembly associadas às interrupções Nota: No final da aula deverá ser entregue o Anexo II-5, contendo todas as respostas às questões do referido Anexo, identificadas com o śımbolo ⇒. Enunciado 1. Interrupções 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 serviço à interrupção;⇒ b) a tabela de vectores de interrupção ⇒ c) a função das rotinas de serviço à interrupção. 1.3. Execute o programa e confirme as funcionalidades identificadas na pergunta 1.2. ⇒ 1.4. Justifique a existência das instruções ENI e DSI na rotina EscCont. ⇒ 1.5. Altere o vector correpondente ao botão I0 para o valor 10h. Que alterações teve que efectuar no assembly para o programa ter o mesmo comportamento quando se executa. 2. Entradas/sáıdas e interrupções ⇒ 2.1. Modifique o programa de scroll da aula passada, de forma a que o scroll seja feito de um em um segundo. ⇒ 2.2. implemente um relógio digital usando os displays de 7 segmentos em que os dois d́ıgitos da esquerda são os minutos e os dois d́ıgitos da direita são os segundos. ⇒ 2.3. altere o programa anterior de forma a que, ao se carregar no botão I0, o valor do relógio passe a ser zero. ⇒ 2.4. altere o programa anterior de forma a que ao, se carregar no botão I1, o relógio pare. O relógio retoma a contagem quando se pressiona o botão I2. Instituto Superior Técnico Arquitectura de Computadores - Guia de Laboratório 14 Instituto Superior Técnico Arquitectura de Computadores - Guia de Laboratório 15 1a parte do Projecto Objectivos Avaliar a capacidade dos alunos de conceber, desenvolver e testar um programa simples em linguagem Assembly, utilizando os conceitos adquiridos nas aulas anteriores. Instituto Superior Técnico Arquitectura de Computadores - Guia de Laboratório 16 Instituto Superior Técnico Arquitectura de Computadores - Guia de Laboratório 17 6o Trabalho Objectivos Introdução à µprogramação. Análise de uma instrução Assembly, em termos de µprogramação. Modificação do funcionamento de uma instrução Assembly. Tópicos 1. Introdução à µprogramação 1.1. A µprogramação na arquitectura P3 1.2. Registos associados à µprogramação 2. Análise de uma instrução Assembly 2.1. Formatos e tipos de instruções Assembly 2.2. µinstruções 2.3. Fluxograma 2.4. µprograma de uma instrução Assembly 3. Modificação de uma instrução Assembly Nota: No final da aula deverá ser entregue o Anexo II-6, contendo todas as respostas às questões do referido Anexo, identificadas com o śımbolo ⇒. Enunciado 1. Introdução à µprogramação. Análise de uma instrução Assembly 1.1. Copie para a directoria de grupo o ficheiro aula6.as, que se encontra listado no Anexo I. Proceda à geração do ficheiro executável. 1.2. Seleccione no simulador a janela que contém a informação referente à µprogramação. Para tal, seleccione a opção Ver Controlo, existente no menu Ver. 1.3. Inicie a execução do programa, começando por executar apenas a 1a instrução. Para isso seleccione uma vez o botão Instrução. ⇒ 1.4. Em seguida continue a execução do programa ciclo-a-ciclo de relógio, seleccionando, uma vez, o botão Clock. Tendo por base o conteúdo do registo RI, identifique: ⇒ a) o tipo de instrução Assembly. ⇒ b) o conteúdo de cada um dos seus campos. ⇒ c) o modo de endereçamento utilizado, baseado nos valores obtidos na aĺınea b). ⇒ 1.5. Prossiga com a execução do programa, ciclo-a-ciclo de relógio, e preencha a Tabela 1, do Anexo II-4. A tabela deve ser preenchida não só com os uns e os zeros, mas também com as indiferenças. ⇒ 1.6. Identifique, no fluxograma representado no mesmo Anexo, a sequência de acções realizada. ⇒ 1.7. Recorrendo ao conjunto de informação existente no Anexo do “Manual do Simulador para o Processador P3”, identifique o µprograma da instrução em causa. Preencha as duas partes Tabela 2, do Anexo II-6, de acordo com a informação obtida. A tabela deve ser preenchida não só com os uns e os zeros, mas também com as indiferenças. Instituto Superior Técnico Arquitectura de Computadores - Guia de Laboratório 18 2. Modificação de uma instrução Assembly Pretende-se modificar o µprograma que obteve na pergunta 1.5, de forma a substituir o modo de endereçamento relativo: MOV M[Rx+W], R1 pelo modo de endereçamento indirecto por memória: MOV M[Rx+M[W]], R1 ⇒ 2.1. Indique em que fase(s) do fluxograma é que se efectuam as alterações. Justifique. ⇒ 2.2. Analise a arquitectura P3, representada na figura do Anexo II-6. Coloque na figura os valores um ou zero para cada sinal de forma a implementar a microinstrução pretendida para realizar o endereçamento indirecto por memória. ⇒ 2.3. Modifique o µprograma, introduzindo-lhe as alterações que identificou na pergunta 2.2. 2.4. Introduza no simulador as alterações que efectuou no µcódigo. Para o efeito, proceda como a seguir se indica: • gere um ficheiro control.rom, com a descrição das alterações a efectuar no µcódigo. Cada linha do ficheiro deve conter a seguinte informação: <endereço da µinstrução que vai ser substitúıda> <nova µinstrução> • efectue o carregamento do referido ficheiro no simulador, seleccionando a opção Car- rega ROM de Controlo, existente no menú Ficheiro. ⇒ 2.5. Repita a execução do programa, ciclo-a-ciclo de relógio. Recorra à informação da janela de µprogramação para efectuar o teste do µcódigo alterado. Quando terminar o teste, preencha a Tabela 3, do Anexo II-4. A tabela deve ser preenchida não só com os uns e os zeros mas também com as indiferenças. Justifique o conteúdo do registo R1, após a execução do programa. Instituto Superior Técnico Arquitectura de Computadores - Guia de Laboratório 19 7o Trabalho Objectivos Implementação de uma nova instrução Assembly. Tópicos 1. Implementação de uma nova instrução Assembly Nota: No final da aula deverá ser entregue o Anexo II-7, contendo todas as respostas às questões do referido Anexo, identificadas com o śımbolo ⇒. Enunciado 1. Introdução de uma nova instrução Assembly Utilizando os conhecimentos adquiridos sobre µprogramação, pretende-se acrescentar ao con- junto de instruções Assembly dispońıveis na arquitectura P3 a seguinte instrução: SXT op Esta instrução estende o sinal de um operando de 8 bits para um operando de 16 bits. Não deve ser alterado o valor de nenhum bit de estado. Ex: Se op = 5Ah o resultado deverá ser 005Ah. Se op = A5h o resultado deverá ser FFA5h. Considere que o opcode desta instrução é: 16h. O trabalho deverá ser realizado de acordo com as seguintes fases: ⇒ 1.1. especificação do µprograma que realiza a instrução em liguagem de transferência de registos. Na tabela deve ser preenchido o endereço simbólico e a µintrução em RTL; ⇒ 1.2. codificação das µintruções de acordo com a arquitectura P3. Para tal todos os campos da tabela devem ser preenchida não só com os uns e os zeros mas também com as indiferenças; ⇒ 1.3. especificação dos endereços/valores do µprograma a carregar numa zona livre da ROM de Controlo e carregamento do ińıcio deste na ROM de mapeamento A na posição correspon- dente ao opcode; ⇒ 1.4. concepção de um programa Assembly, responsável pelo teste da nova instrução. Instituto Superior Técnico Arquitectura de Computadores - Guia de Laboratório 20 Instituto Superior Técnico Arquitectura de Computadores - Guia de Laboratório 21 2a parte do Projecto Objectivos Avaliar a capacidade dos alunos de conceber e desenvolver um µprograma de uma nova instrução Assembly, utilizando os conceitos adquiridos nas aulas anteriores. Avaliar ainda a capacidade de desenvolvimento de um programa complexo em linguagem Assembly fazendo uso dessa nova instru- ção. Instituto Superior Técnico Arquitectura de Computadores - Guia de Laboratório 22 Instituto Superior Técnico Arquitectura de Computadores - Guia de Laboratório 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 Técnico Arquitectura de Computadores - Guia de Laboratório 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 Técnico Arquitectura de Computadores - Guia de Laboratório 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 Técnico Arquitectura de Computadores - Guia de Laboratório 26 CALL EscString BR Opcao Texto1: MOV R2, VarTexto1 CALL EscString BR Opcao EscFim: MOV R2, TextoFim CALL EscString Fim: BR Fim Instituto Superior Técnico Arquitectura de Computadores - Guia de Laboratório 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 Técnico Arquitectura de Computadores - Guia de Laboratório 28 Instituto Superior Técnico Arquitectura de Computadores - Guia de Laboratório 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 Técnico Arquitectura de Computadores - Guia de Laboratório 30 Instituto Superior Técnico Arquitectura de Computadores - Guia de Laboratório 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 Técnico Arquitectura de Computadores - Guia de Laboratório 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 Técnico Arquitectura de Computadores - Guia de Laboratório 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 Técnico Arquitectura de Computadores - Guia de Laboratório 34 Instituto Superior Técnico Arquitectura de Computadores - Guia de Laboratório 35 aula3 2.as ; Programa aula3_2.as ; definicao de variaveis ORIG 8000h SP_INICIAL EQU FDFFh NUM WORD 7 ; codigo ORIG 0000h JMPinicio ; 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 Técnico Arquitectura de Computadores - Guia de Laboratório 36 Instituto Superior Técnico Arquitectura de Computadores - Guia de Laboratório 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 Técnico Arquitectura de Computadores - Guia de Laboratório 38 Instituto Superior Técnico Arquitectura de Computadores - Guia de Laboratório 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 Técnico Arquitectura de Computadores - Guia de Laboratório 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 Técnico Arquitectura de Computadores - Guia de Laboratório 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 Técnico Arquitectura de Computadores - Guia de Laboratório 42 Instituto Superior Técnico Arquitectura de Computadores - Guia de Laboratório 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 Técnico Arquitectura de Computadores - Guia de Laboratório 44 Instituto Superior Técnico Arquitectura de Computadores - Guia de Laboratório 45 Grupo: Turno: No Nome: No Nome: No Nome: ANEXO II-1 – Respostas às questões do 1o trabalho 2. Introdução ao ambiente de laboratório 2.1. INICIO = FIM = 3. Introdução à linguagem de programação 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 Técnico Arquitectura de Computadores - Guia de Laboratório 46 3.3. Tabela 1: Conteúdo dos registos depois da execução do programa aula1 2.exe R0 R1 R2 R3 R4 R5 R6 R7 — — — — 3.4. Tabela 2: Identificação dos modos de endereçamento Instrução Modo de endereçamento 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+3] MOV R7, M[PC+ConstUmByte] 3.5. M[8003h] = 3.6. Tabela 3: Conteúdo dos registos depois da execução do programa aula1 2.exe R0 R1 R2 R3 R4 R5 R6 R7 3.7. a) b) c) Instituto Superior Técnico Arquitectura de Computadores - Guia de Laboratório 47 Grupo: Turno: No Nome: No Nome: No Nome: ANEXO II-2 – Respostas às questões do 2o trabalho 1. Instruções de salto. Análise de um programa 1.1. a) Salto incondicional Salto condicional b) c) 1.4. Instituto Superior Técnico Arquitectura de Computadores - Guia de Laboratório 48 2. 2.1. a) b) c) Instituto Superior Técnico Arquitectura de Computadores - Guia de Laboratório 49 2.2. a) b) c) Instituto Superior Técnico Arquitectura de Computadores - Guia de Laboratório 50 Instituto Superior Técnico Arquitectura de Computadores - Guia de Laboratório 51 Grupo: Turno: No Nome: No Nome: No Nome: ANEXO II-3 – Respostas às questões do 3o trabalho 1. Análise de rotinas 1.3. 1.5. Instituto Superior Técnico Arquitectura de Computadores - Guia de Laboratório 52 1.6. 1.7. Instituto Superior Técnico Arquitectura de Computadores - Guia de Laboratório53 Grupo: Turno: No Nome: No Nome: No Nome: ANEXO II-4 – Respostas às questões do 4o trabalho 1. Entradas/Sáıdas 1.2. Instituto Superior Técnico Arquitectura de Computadores - Guia de Laboratório 54 Instituto Superior Técnico Arquitectura de Computadores - Guia de Laboratório 55 Grupo: Turno: No Nome: No Nome: No Nome: ANEXO II-5 – Respostas às questões do 5o trabalho 1. Interrupções 1.2. a) b) c) 1.4. Instituto Superior Técnico Arquitectura de Computadores - Guia de Laboratório 56 1.5. 2. 2.1. Anote aqui o código que desenvolveu: Instituto Superior Técnico Arquitectura de Computadores - Guia de Laboratório 57 2.2. Anote aqui o código que desenvolveu: Instituto Superior Técnico Arquitectura de Computadores - Guia de Laboratório 58 2.3. Anote aqui o código que desenvolveu: Instituto Superior Técnico Arquitectura de Computadores - Guia de Laboratório 59 2.4. Anote aqui o código que desenvolveu: Instituto Superior Técnico Arquitectura de Computadores - Guia de Laboratório 60 Instituto Superior Técnico Arquitectura de Computadores - Guia de Laboratório 61 Grupo: Turno: No Nome: No Nome: No Nome: ANEXO II-6 – Respostas às questões do 6o trabalho 1. Introdução à µprogramação. Análise de uma instrução Assembly. 1.3. a) b) c) 1.4. Tabela 1: Conteúdo dos registos durante a execução ciclo-a-ciclo de relógio. µinstrução CAR SBR RI R8 R9 R10 R11 R12 R13 R14 R15 R1 0x8060001f 000 Instituto Superior Técnico Arquitectura de Computadores - Guia de Laboratório 62 1.5. Fluxograma Carregamento da Instrução Execução da Instrução Interrupções Execução da Instrução Execução da Instrução Execução da Instrução (TEST, CMP) OPCODE (PUSH) OPCODE=01... Teste de Escrita Resultado OPCODE=11...OPCODE=10...OPCODE=00... Carregamento do Operando Carregamento dos Operandos Carregamento do Operando 1.6. A preencher na tabela da página seguinte 2. Modificação de uma instrução Assembly. 2.1. Instituto Superior Técnico A rq u itectu ra d e C o m p u ta d o res - G u ia d e L a b o ra tó rio 6 3 End. Sim. Transferência de registos F M5 SR1SR2 IAK FM CALU MAMBM2MRB RB WM WR 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 Relógio 1 - Sinal activo X - Sinal indiferente In stitu to S u p erio r T écn ico Arquitectura de Computadores - Guia de Laboratório 64 2.2. IR0 IR3−1 3 M REGISTO DE INSTRUÇÃO 6 2 SR1 0 1 SR2 MUX1 S LI OP 1 z c EINT M U X CO N D 3 0 1 2 M 0 M 1 7 6 5 4 MCOND 3 CC S M U X 6 E INT Z C N O 0 1 2 3 I 5 P 4 CAR +1 9 3 9 9 2 9 9 MUX5 0 1 2 3 SBR 99 NA 0 1 MUX4 LS F M5COND F END AEND A 32 NA MICRO−INSTRUÇÃO 0 1 0 1 0 M U X A D 1 0 M U X RB1 M U X 3 M U X 2 4 IR2IR1 M2 MRB M2 S RB IR15 RAD 4 4 4 4 4 4 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 RE Registo de Estado W 4 0000 16 11 5 000h 4 5 FOUT FR 5 FIN MUXD MA BUS B F CONST12 LI F WM Endereço Escrita de dados 16 164 LF 4FM MB MUXA MUXB D Registos Banco de Reset WR SelB SelAD 4 4 16 A B Leitura de dados Instituto Superior Técnico Arquitectura de Computadores - Guia de Laboratório 65 2.3. Endereço µinstrução 2.5. Tabela 3: Conteúdo dos registos durante a execução ciclo-a-ciclo de relógio. µinstrução CAR SBR RI R8 R9 R10 R11 R12 R13 R14 R15 R1 0x8060001f 000 Instituto Superior Técnico Arquitectura de Computadores - Guia de Laboratório 66 Instituto Superior Técnico Arquitectura de Computadores - Guia de Laboratório 67 Grupo: Turno: No Nome: No Nome: No Nome: ANEXO II-7 – Respostas às questões do 7o trabalho 1. 1.1. A preencher na tabela da página seguinte 1.2. A preencher na tabela da página seguinte 1.3. A preencher na tabela da página seguinte 1.4. Instituto Superior Técnico A rq u it ec tu ra d e C o m p u ta d o re s - G u ia d e L a b o ra tó ri o 6 8 End. Sim. Transferência de registos F M5 SR1SR2 IAK FM CALU MAMBM2MRB RB WM WR MD MAD RAD End ROM Valor LS MCOND CC LI LF CONST / NA Controlo IF0 RI←M[PC] IF0 Legenda: No Ciclos Max Med Min Endereço Valor 0 - Sinal inactivo de Relógio ROM A 1 - Sinal activo X - Sinal indiferente In st it u to S u p er io r T éc n ic o
Compartilhar