Projeto 2: SPIM

O SPIM é um simulador que executa programas escritos para os processadores MIPS R2000 e R3000. Ele é capaz de ler e executar arquivos em linguagem de montagem do MIPS. Um manual detalhado deste simulador feito pelo próprio autor pode ser encontrado aqui.

A seguir serão apresentadas rapidamente algumas de suas principais funções e será demonstrada a sua utilização em exemplos práticos, para que este possa ser usado na elaboração do Projeto 2.

Faça o download do SPIM aqui (876Kb). Instale o software e após isso execute-o através do atalho em Menu Iniciar\Programas\PCSpim for Windows.

Para que você possa se familiarizar com o funcionamento do software, veja antes Familiarizando-se com a interface do SPIM.

Para executar seus programas escritos em linguagem de montagem do MIPS, estes devem ser feitos em um editor de texto comum, como o notepad.exe. Estes arquivos deverão ser salvos com a extensão ".s" ou ".asm" para depois serem abertos e executados pelo SPIM.

A seguir são apresentados alguns exemplos de programas que podem auxiliar no desenvolvimento do projeto:

Exemplo 1 - Trabalhando com registradores

Exemplo 2 - Trabalhando com dados em memória

Exemplo 3 - Outra forma de trabalhar com a memória

Exemplo 4 - Chamada de procedimentos e armazenamento de dados na pilha.

Exemplo 5 - Utilização do console do SPIM para entrada e saída de dados.

Especificação do Projeto 2:

Implemente um programa em linguagem de montagem que funciona como uma agenda de telefones, onde é apresentado ao usuário um menu com as seguintes opções:

1) Incluir contato: onde o usuário insere na agenda as informações nome e número de telefone de um contato;

2) Excluir contato: onde o usuário informa um número de telefone e o contato que possui tal telefone é removido da agenda;

3) Buscar contato: onde o usuário informa um número de telefone e o contato que possui tal telefone é exibido na tela; e

4) Imprimir agenda: onde são exibidos na tela todos os contatos existentes na agenda, organizados em ordem crescente por número de telefone.