Skip to content

anonoss/MipsDev

Repository files navigation

MIPSduino Assembler

A modern, high-performance MIPS Assembly development environment featuring the MIPSduino Assembler v2.0 with MicroCoreASM hardware integration.

Version License Platform

πŸš€ What's New in v2.0

  • Integrated Toolchain: All utility scripts consolidated into a single powerful MIPSduino CLI.
  • MicroCoreASM Ready: Export raw binary files (.bin) for direct loading into hardware.
  • Arduino Support: Export C/C++ header files (.h) containing instruction arrays for Arduino/ESP32 projects.
  • Enhanced Symbols: Detailed memory address mapping and symbol table analysis integrated into the CLI.
  • Premium UI: Clean, colorized terminal output for a better developer experience.
  • Performance Optimized: Faster assembly and conversion processes.

πŸ“¦ Quick Start

Installation

Windows:

  1. Download MIPSduino_Setup.exe.
  2. Run the installer (it will add MIPSduino to your system PATH).
  3. Open a new terminal and type MIPSduino to verify.

Linux (Debian/Ubuntu):

sudo dpkg -i MIPSduino_2.0.0_amd64.deb

VS Code Extension:

code --install-extension MIPSduino-2.0.0.vsix

Usage

Run MIPS assembly:

MIPSduino run program.asm

Build for MicroCoreASM (Hardware/Arduino):

# Export to all formats (hex, bin, h)
MIPSduino build program.asm

# Export specifically for Arduino
MIPSduino build program.asm -f arduino -o program.h

Show Symbol Table & Addresses:

MIPSduino symbols program.asm

πŸ”Œ Hardware Integration Guide (MicroCoreASM)

πŸ“Ÿ Using with Microprocessors

To load your MIPS code into a hardware microprocessor or FPGA:

  1. Generate Binary: Run MIPSduino build program.asm -f bin.
  2. Output: This creates a program.bin file containing raw machine code.
  3. Loading: Use your hardware programmer or bootloader to flash this binary directly into the instruction memory (starting at address 0x00400000 by default).

♾️ Using with Arduino

To use MIPS instructions within an Arduino/ESP32 sketch:

  1. Generate Header: Run MIPSduino build program.asm -f arduino -o mips_code.h.
  2. Include: Copy mips_code.h to your Arduino project folder.
  3. Code:
    #include "mips_code.h"
    
    void setup() {
        Serial.begin(115200);
        // Access the instructions
        for(int i = 0; i < program_len; i++) {
            Serial.println(program[i], HEX);
        }
    }
  4. Execution: You can now use this array to feed a MIPS emulator or a custom soft-core running on your microcontroller.

πŸ› οΈ Development

Prerequisites

  • Python 3.x
  • Java Runtime Environment (JRE) 8+
  • For building: PyInstaller (pip install pyinstaller)

Building from Source

cd mips-toolchain/build
./build.sh

πŸ“ Project Structure

IronCoreAssembler/
β”œβ”€β”€ mips-toolchain/          # MIPSduino Assembler Toolchain Source
β”‚   β”œβ”€β”€ cli/                 # Redesigned CLI (MIPSduino.py)
β”‚   β”œβ”€β”€ extension/           # VS Code extension
β”‚   β”œβ”€β”€ build/               # Build & Packaging scripts
β”‚   └── releases/            # Distribution packages
β”œβ”€β”€ Mars.jar                 # MARS simulator core
β”œβ”€β”€ SYMBOL_GUIDE.md          # Symbol table guide
β”œβ”€β”€ ADDRESS_MAP.md           # Address mapping reference
└── MARS_GUIDE.md            # MARS usage guide

🌟 Features

MIPSduino CLI v2.0

  • Run: Execute MIPS Assembly files (CLI or GUI mode)
  • Build: Assemble to Hex, Binary, or Arduino-ready C headers (MicroCoreASM)
  • Symbols: Integrated symbol table and memory address mapping
  • Cross-Platform: Native support for Linux, Windows, and macOS
  • Standalone: No Python required after building

VS Code Extension

  • ✨ Syntax highlighting for MIPS assembly
  • πŸš€ One-click execution (Ctrl+Shift+R)
  • πŸ”¨ Build command (Ctrl+Shift+B)
  • πŸ“ 15+ code snippets for common patterns
  • 🎨 IntelliSense and auto-completion

🀝 Contributing

Contributions are welcome! Please feel free to submit issues or pull requests.

πŸ“„ License

MIT License - See LICENSE file for details


Version: 2.0.0
Last Updated: December 19, 2025
Copyright: MIPSduino Team & Anon Open Source

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors