Anda di halaman 1dari 1

Infraestrutura de Hardware

Victor Medeiros
Atividade Prática 01
Linguagem de Máquina (MIPS)
 
Para realizar esta atividade prática utilizaremos a ferramenta de simulação ‘Mars’. Esta ferramenta é
capaz de simular a execução de instruções de um processador com arquitetura MIPS em um PC
hospedeiro. O simulador ‘Mars’ foi implementado na linguagem Java portanto, é portável, podendo ser
executado em diferentes sistemas operacionais. O arquivo executável do simulador ‘Mars4_5.jar’ foi
disponibilizado na página da disciplina através de um link para a aula de hoje na aba cronograma.
Antes de iniciar a nossa prática vamos seguir os seguintes passos:

•   Baixar o arquivo ‘Mars4_5.jar’.


•   Executar a aplicação clicando duas vezes no arquivo ‘.jar’. Caso esta alternativa não funcione
abrir um terminal (ou prompt de comando) e executar o seguinte comando na pasta onde o
arquivo ‘.jar’ esta localizado: java –jar Mars4_5.jar
•   Na interface que irá surgir, clicar no menu em ‘File’ e depois ‘New’
•   A partir de agora podemos começar a escrever nossos códigos.

1.   Escreva um programa que carregue o array a = [1, 3, 2, 1, 4, 5] na memória, ou seja, que contenha
a sequência de instruções MIPS correspondente às seguintes instruções C:

a[0] = 1;
a[1] = 3;
a[2] = 2;
a[3] = 1;
a[4] = 4;
a[5] = 5;

Assuma que o registrador $s0 contém o endereço base do array igual a 0x10010000.

2.   Estenda o código MIPS da questão anterior para que o mesmo faça a leitura dos valores do array
a e armazene-os duplicados em um array b no endereço base 0x10010020. Ou seja, dado que o
array a seja igual a [1, 3, 2, 1, 4, 5] o array b terá os seguintes valores [2, 6, 4, 2, 8, 10].

3.   Considerando os arrays a e b do exercício anterior, escreva um código que calcula a soma de


todos os elementos dos arrays a e b e guarde o resultado nos registradores $v0 e $v1,
respectivamente.

4.   Estenda o código da questão anterior para que este substitua os valores ímpares do array a pelo
valor da soma dos elementos armazenados no registrador $v0.

5.   Assuma que as variáveis a, b, c correspondem aos registradores $t0, $t1 e $t2. Qual é o
código MIPS correspondente ao código C abaixo?

switch (a) {
case 1: b = c + 1; break;
case 2: b = c + 2; break;
default: b = c; break;
}

Anda mungkin juga menyukai