MARS(MIPS汇编程序和运行时模拟器)
An IDE for MIPS Assembly Language Programming
简介
官网上的说明:MARS is a lightweight interactive development environment (IDE) for programming in MIPS assembly language, intended for educational-level use with Patterson and Hennessy’s Computer Organization and Design.(MARS是一个轻量级的交互式开发环境(IDE),用于使用MIPS汇编语言进行编程,旨在与Patterson和Hennessy的计算机组织和设计一起用于教育级别。)
目前最新版本为MARS 4_5
是一个4MB左右的.Jar可执行文件,需要使用Java环境,如果有Java运行环境(JRE)可直接使用,否则应先下载JRE或JDK https://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html
下载
- 百度搜索MARS MIPS simulator或者直接输入 http://courses.missouristate.edu/kenvollmar/mars/ 访问官网
- 点击下载最新版
创建开始菜单快捷方式
因为MARS是.jar文件,所以不能直接固定到“开始”屏幕,需要进行一些处理:
- 创建Mars4_5.jar的快捷方式
- 将快捷方式移动到开始菜单目录
C:\Users\ XXX(实际的账户名称) \AppData\Roaming\Microsoft\Windows\Start Menu
- 在开始菜单搜索Mars,并右键选择 固定到“开始”屏幕
使用入门
Mars功能强大,具有代码提示,模拟运行,调试,统计等功能
- 界面简介
- 运行方法
示例1
#include <stdio.h>
int main(void)
{
int r, x;
x = 2;
r = x + 3;
printf("%d", r);
return 0;
}
我们将上面的C语言代码转成mips汇编指令
x = 2;
#将t1寄存器的值置为2 li $t1, 2
r = x + 3;
#将 t1寄存器中的数据加3,存到t0中 (t0 = t1 + 3) add $t0, $t1, 3
printf("%d", r);
$v0 = 1, syscall -> print_int
$v0 = 4, syscall -> print_string,#将t0寄存器的值放到a0寄存器中 move $a0, $t0 #将v0寄存器的值置为1 li $v0, 1 #系统调用 syscall
完整转换的mips指令
#将t1寄存器的值置为2
li $t1, 2
#将 t1寄存器中的数据加3,存到t0中 (t0 = t1 + 3)
add $t0, $t1, 3
#将t0寄存器的值放到a0寄存器中
move $a0, $t0
#将v0寄存器的值置为1
li $v0, 1
#系统调用
syscall
运行示例1: