Skip to content

diogo2m/commips

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Descrição

O Compilador para MIPS (Commips) é um compilador de linguagem de alto nível em português para código de instrução. O código pode ser gerado em linguagem natural ou em números hexadecimais. Dessa forma, o Commips pode gerar códigos que podem ser executados em simuladores e emuladores de hardware. Além disso, pode contribuir para que o usuário se familiarize com a sintaxe e logica algorítmica por trás dos códigos de instrução.

Sobre a linguagem P-Mips

P-Mips é uma linguagem voltada para ajudar estudantes de arquitetura de computadores a compreender o funcionamento de um processador. Sua utilização é aconselhada para aqueles que tiveram pouco contato com linguagens de instrução, facilitando a visualização do algoritmo. Mas, também serve para aqueles que gostariam de executar códigos de instrução mas sem abrir mão da legibilidade.

Lista de comandos aceitos:

NOME PARÂMETROS DESCRIÇÃO OPERAÇÃO
NOR rd,rs,rt Nor rd=~(rs|rt)
NORI rd,rs,imm Nor imediato rd=~(rs|imm)
AND rd,rs,rt E rd=rs&rt
ANDI rd,rs,imm E imediato rd=rs&imm
OR rd,rs,rt Ou rd=rs rt
ORI rt,rs,imm Ou imediato rt=rs imm
XOR rd,rs,rt Ou exclusivo rd=rs^rt
XORI rt,rs,imm Ou exclusivo imediato rt=rs^imm
ADD rd,rs,rt Adicionar rd=rs+rt
ADDI rd,rs,imm Adicionar imediato rd=rs+imm
SUB rd,rs,rt Subtrair rd=rs-rt
SUBI rd,rs,rt Subtrair imediato rd=rs-imm
MULT rs,rt,rd Multiplicar rd=rs*rt
MULTI rs,imm,rd Multiplicar imediato rd=rs*imm
J offset(rs) Salto pc=pc_upper(rs<<2)
JI offset(imm) Salto imediato pc=pc_upper(imm<<2)
JZ offset(rs),rt Salto condicional if(rt==0) pc+=offset*4
JZI offset(imm),rt Salto condicional imediato if(rt==0) pc+=offset*4
LW rt,offset(rs),rd Carregar palavra rt=mem(offset+rd)
LWI rt,offset(rs),imm Carregar palavra imediato rt=mem(offset+imm)
SW rt,offset(rs),rd Salvar palavra mem(offset+rd)=rt
SWI rt,offset(rs),imm Salvar palavra imediato mem(offset+imm)=rt

Para mais informações de sintaxe, clique aqui

Compile. Execute. Veja. Aprenda.

Para compilar seus códigos de PMips para linguagem de instrução usando o Commips (use a flag -H ou --HEXADECIMAL para ter em formato hexadecimal), basta executar um comando no terminal passando argumentos de acordo com sua preferência de input e output. No comando abaixo, executamos um código exemplo do Commips:

python3 commips -i exemplos/exemplo.pmips -o output.txt

Caso você queira executar seu código diretamente no nosso simulador, você pode utilizar a flag -L ou --LINE-HEX para compilar a linha inteira em hexadecimal.

python3 commips -L -i exemplos/exemplo_arquitetura.pmips -o output.txt

Para mais informações execute python3 commips --help.

Diretrizes de Uso

A equipe por trás deste projeto apoia o uso e desenvolvimento de ferramentas de software livre. Este projeto foi construído com o apoio de ferramentas de código aberto (e.g. Ubuntu e Chromium), sem eles, nada seria possivel, então é justo permitir que desenvolvedores e estudantes a utilizem livremente. O projeto segue uma diretriz de uso livre de atribuição (CC0 1.0), o que significa que não há direitos autorais associados. Você pode utilizar e modificar nosso projeto como desejar, sem a necessidade de atribuição (embora ficaríamos muito felizes se você o fizesse, mas apenas se desejar).

Note

Esse projeto utilizou de ferramentas de inteligência artificial para geração de imagens, correções ortográficas e aperfeiçoamento de legibilidade do código.

About

Compile, execute, veja, aprenda.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages