Help Links: Intro    Settings    Syscalls    IDE    Debugging    Command    Tools    History    Limitations        MARS home

MARS - Mips Assembly and Runtime Simulator

Release 3.7

August 2009

Operating Requirements

MARS is written in Java and requires at least Release 1.4 of the J2SE Java Runtime Environment (JRE) to work. The graphical IDE is implemented using Swing. It has been tested on Windows XP and Vista, Mac OS X, and is also being used under Linux.

Some MARS Assembler and Simulator Limitations

Limitations of MARS as of Release 3.7 include: Releases 3.0 and later assemble and simulate nearly all the MIPS32 instructions documented in the textbook Computer Organization and Design, Fourth Edition by Patterson and Hennessy, Elsevier - Morgan Kaufmann, 2009. All basic and pseudo instructions, directives, and system services described in Appendix B are implemented.

Some MARS IDE Limitations

The text editor is not "MIPS aware" and is similar to using Notepad. It does however display the current cursor position in line-column format and allows you to display line numbers. It also has unlimited Undo/Redo capability. If you want to use an outside text editor, MIPSter is a fine shareware MIPS text editor that can be used outside MARS. See www.downcastsystems.com/mipster/. If you use MIPSter as your editor, we suggest you select the MARS setting to assemble files automatically upon opening.

You can only work on one file at a time. Selecting New or Open closes the existing file. It is however possible to assemble and link a multi-file project by placing all source files in the same directory and select the "Assemble all files in directory" setting in the Settings menu. However you can run the project from any of its files as long as there is a statement with the global label "main". The MARS command mode additionally allows you to list specific files to be assembled and linked.

Very few configuration changes, besides those in the Settings menu, are saved from one session to the next. The editor settings, which include font settings and display of line numbers, are saved.

The IDE will work only with the MARS assembler. It cannot be used with any other compiler, assembler, or simulator. The MARS assembler and simulator can be used either through the IDE or from a command prompt.

Known Bugs

The Screen Magnifier screen capture feature does not appear to work properly under Windows Vista.

Not a bug, but documented here anyway: MIPS Branch instruction target addresses are represented by the relative number of words to branch. With Release 3.4, this value reflects delayed branching, regardless of whether the Delayed Branching setting is enabled or not. The generated binary code for branches will now match that of examples in the Computer Organization and Design textbook. This is a change from the past, and was made after extensive discussions with several faculty adopters of MARS. Previously, the branch offset was 1 lower if the Delayed Branching setting was enabled -- the instruction label: beq $0,$0,label would generate 0x1000FFFF if Delayed Branching was enabled and 0x10000000 if it was disabled. Now it will generate 0x1000FFFF in either case. The simulator will always branch to the correct location; MARS does not allow assembly under one setting and simulation under the other to occur.


This document is available for printing on the MARS home page http://www.cs.missouristate.edu/MARS/.