Run MIPS with python!
Project description
Introduction
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.
Note
This project is in its early stage, which means some functions may not supported yet.
Install
With pip : pip3 install fengyong
With src : Clone or fork this project, then build it with python3 setup.py install
Usage
Shell
After install, you can run a mips shell with mips-shell command.
Assemble
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))
DisAssemble
from fengyong import DisAssembler
from fengyong import RegData
machine_code = RegData("0x8002710af820ae51000a")
instructions = DisAssembler.decode(machine_code)
print(instructions)
Simulate - RUN!
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")
Simulate - Debug
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()
Example
Contributing
Read CONTRIBUTING for more information.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file fengyong-1.3.0.tar.gz
.
File metadata
- Download URL: fengyong-1.3.0.tar.gz
- Upload date:
- Size: 10.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.6.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c50dff769e4344a986266fcc9162f6616ad377785cac42662448291bf07e57fc |
|
MD5 | 40880a0910af86e9418815adb890d419 |
|
BLAKE2b-256 | 795ca0044006244c58e84a63c5cb3e129d90d564365d0faee4b8d336dd32fc9a |