MIPS-Simulator runs MIPS32 programs. Unlike real simulator, which assembles the instructions into machine code and executes them, MIPS-Simulator just parse the instructions and runs them using python code. In other words, MIPS-simulator actually interprets mips instructions.
- This project is a toy, which means some functions are not supported.
- If you just need an IDE for MIPS Programming, I personally recommend MARS by Softpedia Lab, Missouri State University.
- If you also want to play with this toy, feel free to do want ever you want but don't forget about the CI tests.
- With pip :
pip3 install fengyong
- With src : Clone or fork this project, then build it with
python3 setup.py install
After install, you can run a mips shell with mips-shell
command.
from fengyong import Assembler
instructions = """
j 10000
add $s0,$a1,$t7
sw $s1,10($s2)"""
machine_code = Assembler.encode(instructions)
print(machine_code.bin)
print(machine_code.value_base(16))
from fengyong import DisAssembler
from fengyong import RegData
machine_code = RegData("0x8002710af820ae51000a")
instructions = DisAssembler.decode(machine_code)
print(instructions)
from fengyong import Simulator
# Run mips instruction in line
Simulator.run_line("addi $s0, $s1, 10")
# Run asm file
Simulator.run_file("../test/drings.asm")
from fengyong import Registers
from fengyong import RegData
# Set the register data
Registers.reg_set("$s0",RegData(100))
# Get the register data
res = Registers.reg_get("$s0")
# print all the "s" registers
Registers.print("s")
# print all registers
Registers.print()
Read CONTRIBUTING for more information.