Buscar

guia-lab

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

Continue navegando