A downloadable tool for Windows and Linux

What greater machine is there than the modern CPU? (Probably robots are something...)

RISC-E (Reduced Instruction Set Computer Emulator) is an Emulator/Interpreter for the MIPS instruction set written in C++ (no external libraries). See more about MIPS here: https://en.wikipedia.org/wiki/MIPS_architecture

It supports all arithmetic, logical, and branching instructions for the MIPS instruction set. The emulator does not support floating point instructions. Details about the supported instructions and system calls are provided in the README.

RISC-E builds and runs on both Windows and Linux, using CMake to generate the requisite build scripts in either OS.

Multiple examples are packaged with the executable. For example, a program that computes all primes from 2 to 1000. Instructions for running these programs, or your own MIPS programs, are described in the README. 

However, it is very straightfoward to run! Simply run the executable from command line and pass it a file containing the MIPS code. For example:

MIPSEmulator.exe .\examples\primes.txt (on Windows)

or

./MIPSEmulator ./examples/primes.txt (on Linux)

Binaries and sources are attached with this submission. The source code and binaries are also available on GitHub: https://github.com/AlexanderRuth/RISC-E-MIPS-Emulator-

Download

Download
RISC-E_v1.0_Windows.zip 66 kB
Download
RISC-E_v1.0_Linux.tar.gz 312 kB
Download
RISC-E-MIPS-Emulator-1.0_Source.tar.gz 11 kB
Download
RISC-E-MIPS-Emulator-1.0_Source.zip 18 kB

Comments

Log in with itch.io to leave a comment.

(1 edit)

Good stuff.  Really interesting project. Thank you for sharing. Any idea how to implement floating numbers? Is there a way to get the remainder after an arithmetic operation?

It's nice. And I guess considering the text files, it's quite complex!

The function_call program: We can put other things than a single number. Even entering nothing, works. So maybe manage to handle exceptions.
The rock_paper_scissors and same seed program: Should redisplay and start typing a digit 0,1,2 again if "invalid input". Without leaving and handing over the order.
The string_input program: Contains a string limit.
Of course, these are only details that do not totally deserve importance ^^.