Skip to content
RARS -- RISC-V Assembler and Runtime Simulator
Branch: master
Clone or download
esperz2019 and TheThirdOne Add support for R4, B, and J instructions in InstructionCounter
* ignore generated class files, eclipse project files

* Add UI elements

* Implement stat ifs and GUI update

* Add R4-type instruction count support
Latest commit b29fe29 Apr 24, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
META-INF Bump version to 1.2 and update README Mar 21, 2019
examples Fix some small issues Aug 27, 2017
help Bump version to 1.2 and update README Mar 21, 2019
images Removed the splash screen and replaced the logo with a RISC-V logo Aug 28, 2017
test Fix #7 and add test to verify it May 26, 2018
.gitignore Add support for R4, B, and J instructions in InstructionCounter Apr 24, 2019
.travis.yml Change what triggers builds so experimental builds can exist Apr 3, 2019
License.txt Refactor the mars package to rars Aug 27, 2017
PseudoOps.txt Remove NOP instruction Mar 28, 2019 Move code from jar May 31, 2017 Add LSeek Syscall Jul 27, 2017 Add build script for jar Feb 24, 2019
screenshot.png Bump version to 1.2 and update README Mar 21, 2019 Setup travis to make builds and fix Mar 25, 2019 Remove .ktext and .kdata Jul 27, 2017

RARS -- RISC-V Assembler and Runtime Simulator

RARS, the RISC-V Assembler, Simulator, and Runtime, will assemble and simulate the execution of RISC-V assembly language programs. Its primary goal is to be an effective development environment for people getting started with RISC-V.


  • RV32IMF ISA with some support for user level interrupts.
  • Several system calls that match behaviour from MARS or SPIKE.
  • Support for debugging using breakpoints and/or ebreak
  • Side by side comparison from psuedo-instruction to machine code with intermediate steps
  • Multifile assembly using either files open or a directory


RARS is distributed as an executable jar. You will need at least Java 8 to run it.

The latest release can be found on the releases page.


Screenshot of sample program

Changes from MARS 4.5

RARS was built on MARS 4.5 and owes a lot to the development of MARS; its important to note what are new developments and what come straight from MARS. Besides moving from supporting MIPS to RISC-V and the associated small changes, there are several general changes worth noting.

  • Instructions can now be hot-loaded like Tools. If you want to support an additional extension to the RISC-V instruction set. the .class files just need to be added to the right folder
  • ScreenMagnifier, MARS Bot, Intro to Tools, Scavenger Hunt, and MARS Xray were removed from the included tools. ScreenMagnifier, MARS Bot, Intro to Tools, and Scavenger Hunt were removed because they provide little benefit. And MARS Xray was removed because it is not set up to work with RISC-V, however if someone ports it, it could be merged in.
  • Removed delayed branching
  • Removed the print feature
  • Added a testing framework to verify compatability with the RISC-V specification
  • Significant internal restructuring and refactoring.

Future improvements

RARS is currently a useful tool, but there is definitely still room for improvement.

  • Support assembling to and simulating from the ELF format
  • Support more standard extensions (such as Doubles or Atomics)
  • Support more Linux system calls and have directly compatible behaviour with Spike
  • Eliminate known bugs
You can’t perform that action at this time.