A MIPS32 emulator, written in Rust.
Mipsy is entirely intended for educational purposes - it is by no means a complete, correct, or rigorous implementation of the MIPS32 specification. It tries to implement most common MIPS32 [psuedo]instructions, with correct behaviour, however many features are left out in the interests of simplicity, agility of development, and a keen focus on educational value.
Note that mipsy focuses specifically on the education of assembly programming, as opposed to the education of hardware, or how hardware functions. It is suited for introductory systems-programming courses, where students can learn a simple assembly language such as MIPS, in a simulator that attempts to provide helpful feedback, powerful debugging tools, and pre-empt common bugs -- all of which aim to give the student a better learning experience.
Features you will NOT find include:
Features you (hopefully) will be pleased to find in mipsy:
This project is a work-in-progress, but is in a reasonably usable state -- make sure you understand what mipsy does and does not provide before deciding if it is right for you!
rustup
at https://www.rust-lang.org/tools/installgit clone https://github.com/insou22/mipsy.git && cd mipsy
cargo build --package mipsy
will build a binary for your machine into ./target/debug/mipsy
./target/debug/mipsy [mips_file]
cargo build --release --package mipsy
. Your binary will be in ./target/release/mipsy