Atividade de Laboratório 3
Objetivos
O objetivo desta atividade é exercitar o conceito de laço e o método
de acesso indireto à memória do computador IAS.
Descrição
Escreva um programa em linguagem de máquina IAS (usando mapa
de memória) para calcular o produto escalar de dois vetores.
Produto escalar é uma operação que realiza a soma dos produtos
de todos os elementos de 2 vetores, dois-a-dois. Por exemplo,
para os vetores A=(1,2) e B=(4,13), temos o seguinte produto
escalar: 1*4+2*13 = 30.
Você pode supor que os vetores possuem o mesmo tamanho,
contudo esse tamanho é arbitrário. Os vetores podem ou não
estar representados consecutivamente no mapa de memória. Mais
informações são apresentadas na seção abaixo.
Requisitos (ATENÇÃO!)
- O tamanho dos vetores deve ser lido da memória, no
endereço 0x3FF;
-
Os endereços dos vetores (endereços do primeiro elemento de cada
vetor) devem ser lidos da memória (endereços 0x3FD e 0x3FE).
-
Seu mapa de memória deve ser organizado em 3 partes: na primeira parte
há o código (instruções) e dados; na segunda parte (o "meio" do mapa
de memória) estão os 2 vetores, e nas 3 últimas posições estão
armazenados os endereços iniciais e o tamanho dos vetores, conforme
explicado no item acima.
-
Reserve as primeiras 64 linhas do mapa de memória para as instruções
e dados. Na correção da atividade, um script vai copiar suas
primeiras 64 linhas e juntar com vetores pré-determinados para
teste.
-
Termine a execução com um salto para um endereço maior ou
igual a 0x400.
-
Antes de terminar a execução, salve o resultado do produto escalar no registrador
AC. A corretude será verificada através da inspeção do valor neste registrador
Dicas
-
O arquivo (blank.hex)
contém todas as posições de memória do IAS preenchidas
com 0 - pode ser útil como "molde".
-
Para facilitar o projeto e a implementação do programa, você
pode considerar que a multiplicação gera apenas resultados
de até 40 bits.
Entrega e avaliação
Endereço da atividade no sistema SuSy:
https://susy.ic.unicamp.br:9999/mc404ab/Lab3
- Você deve submeter APENAS um arquivo no SuSy, chamado
raXXXXXX.hex, em que XXXXXX é seu ra com 6 dígitos.
O script a ser utilizado para verificar a corretude e
três dos testes podem ser encontrados
em: mc404-15-2s-lab03.tar.gz. Para
descompactar utilize
tar -xzvf mc404-15-2s-lab03.tar.gz
.