MipsWeaver is an all-purpose assembler and interpreter library for the MIPS assembly language.
Usage of this library requires the Rust compiler to be installed.
Executing a MIPS program:
cat mips.asm | cargo run
Building documentation:
cargo doc
Running integration and doc tests on the library:
cargo test
The MIPS reference is available on
- Volume I Introduction to the MIPS32 Architecture
- Volume II Instruction Set Manual
- Volume III Priveleged Resource Architecture
- All MIPS32 Instructions defined between Release 1 and Release 6
- Excluding the exceptions in unimplemented features
- Feature spreadsheet can be seen here
- Binary encoding of instructions
- Compile to ELF format file
- Interactive MIPS parser with WebAssembly (crate to be developed later)
- Disassembler
- Coprocessor 2 (behavior is left undefined by specification).
- Simulator of Translation Lookaside Buffer (TLB)
- Simulator of memory caching (does not change output)
- Execution not implemented yet: (TLB instructions),
rdhwr
,rdpgpr
,wrpgpr
,jalx
,c.cond.fmt
,evp
,dvp
,eret
,deret
,ctc1
,cfc1
,bc1f
,bc1t
.
This project is under the MIT license.