Skip to content

benjamin-cates/MipsWeaver.rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MIPS Weaver Logo MipsWeaver.rs

MipsWeaver is an all-purpose assembler and interpreter library for the MIPS assembly language.

Installation

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

MIPS Reference

The MIPS reference is available on

Implemented Features

  • 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

Features to implement

  • Compile to ELF format file
  • Interactive MIPS parser with WebAssembly (crate to be developed later)
  • Disassembler

Unimplemented Features

  • 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.

License

This project is under the MIT license.

About

Assemble and run MIPS programs

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages