This project introduces a custom assembler and a web-based simulator that translates user-defined assembly language into machine language. Built for educational purposes and inspired by MIPS 32 architecture, this tool offers a simplified and practical experience of how assemblers work in real systems.
The goal of this project is to:
- Design a new assembly language closely resembling MIPS 32 syntax
- Build a custom assembler that converts instructions into equivalent machine code
- Create a web interface to simulate the assembler's operation in a user-friendly environment
- Educate students on how real-world assemblers function, from parsing to binary translation
Assembler design is an advanced topic in computer architecture and systems programming. By building our own assembler and web-based simulator, we provide learners with:
- A practical understanding of instruction encoding
- Insight into register management, ALU operations, and memory access
- An intuitive way to visualize how high-level logic becomes low-level binary
- Assembler Engine: Python (for parsing, translating, and encoding)
- Frontend: HTML, CSS, JavaScript
- Architecture Design Inspiration: MIPS 32
- Hosting/Simulation: Web-based interface to run simulated instructions in real-time
- Custom syntax for defining and running assembly instructions
- Binary translation of supported instructions into simulated machine code
- Real-time simulation of instruction execution
- Educational UI for demonstrating register and memory changes
- Inspired by Linux terminal and MIPS 32 interaction patterns
This project serves as a stepping stone for:
- Students learning computer architecture and assembly programming
- Developers seeking to understand low-level machine code generation
- Educational institutions needing interactive simulation tools for teaching
By building a simplified but accurate model, the project demystifies how processors interpret and execute instructions.
This project was developed by the same dedicated team behind the Letsema project. While specific roles were not assigned for this initiative, collaboration and joint effort drove the success of the tool.
- Tlotliso Khosi – Project Leader
Oversaw and coordinated all stages of development, ensuring both the assembler logic and the web interface were aligned with the project’s educational goals.
- Tlhokomelo Mohobane
- Bahlakoana Tau
- Seabata Nchoba
- Kelello Mapesela
- Bafokeng Masitha
- Khotso Mojakhomo
- Not yet complete so on actually how to use is going to be impossible until a full implementation is done.