Skip to content

CarlosNeto2804/mips-pocket-decoder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Decodificador Mips Pocket

Descrição: o nível mais baixo de programação de um hardware computadorizado é comumente apresentado como nível assembly (montagem). Nesse nível, só existem comandos básicos, bem simples, que indicam ao hardware (processador ou microcontrolador) uma tarefa bem específica. O sistema implementa exemplos de instruções de um processador simples e bem específico denominado Pocket MIPS Monocycle (PMM).

Execução e Teste

Criar executável

Para criar o executável do projeto basta executar o arquivo Makefile dentro da pasta do projeto:

$ make

Isso irá gerar uma basta bin que contém o executável da aplicação. Para iniciar basta rodar o executável:

$./bin/decoder-mips-pocket

Dica: a pasta tests contém arquivos que possuem entradas válidas para automatizar os testes.

# exemplo de execução com testes pré implementados
$ ./bin/decoder-mips-pocket < ./tests/all-tests.in

Código dos registradores

  • r0
  • r1
  • r2
  • r3

Instruções Tipo - R

Operações aceitas:

  • ADD
  • SUB
  • MTA
  • MTB
  • MFA
  • MFB
  • HALT

A sintaxe para executar instruções do tipo R é informar o nome da instrução seguida do código do registrador:

Exemplo

# exemplo de entrada 
$ ADD r1
# saída para instrução ADD r1
$ 000 01 000

Instruções Tipo - I

Operações aceitas:

  • ADDI

Exemplos

A sintaxe para executar instruções do tipo I é informar o nome da instrução seguida de um número inteiro de 0 a 31:

# exemplo de entrada 
$ ADDI 6
# saída para instrução ADDI 6
$ 001 00110

Instruções Tipo - J

Operações aceitas:

  • BEQ

Exemplos

A sintaxe para executar instruções do tipo J é informar o nome da instrução e em seguida o codigo de dois registradores:

# exemplo de entrada 
$ BEQ r0, r1
# saída para instrução BEQ r0, r1
$ 011 00 01 0

obs: a virgula entre o código dos registradores é facultativa.

# exemplo de entrada sem virgula entre registradores
$ BEQ r1 r2
# saída 
$ 011 01 10 0

About

Project related to Computer Organization discipline, from the Information Systems course, UFMS

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors