This project involves the development of a custom assembly-like language compiler and simulator. It is a collaborative effort with contributions from multiple contributors. Below is a detailed guide on the project, its structure, and information about each component.
The project focuses on building a custom assembly-like language compiler and simulator. The language includes various instructions, and the project is divided into different files, each serving a specific purpose.
- Responsible for reading input, gathering files, and compiling the final assembler.
- Detects and handles errors related to variables and labels.
- Converts high-level instructions into machine code using the OPcode table.
- Simulates the compiled code execution.
- Manages registers, memory, and flags during the simulation.
- Provides functionality for arithmetic operations, comparisons, and control flow.
- Contains essential helper functions used throughout the project.
- Implements functions for binary-to-decimal conversion, error handling, and basic operations.
- Defines error codes for different types of errors that may occur during compilation and simulation.
- Provides a standardized way to handle and report errors in the code.
- Includes the OPcode table, mapping mnemonics to binary codes and instruction types.
- Defines the binary representation and type for each supported instruction.
- Contains dictionaries and constants used in the project.
- Provides a centralized location for storing and managing shared data.
- Includes basic but important functions used consistently throughout the project.
- Implements functions for binary manipulation, conversions, and operations.
- A script that combines compilation and simulation for convenience.
- Executes the
Main.py
andSimulator.py
scripts sequentially.
The project has been made possible by the contributions of the following individuals:
- Nakul Garg - GitHub Profile : Helper.py
- Sankit - GitHub Profile : Helper.py, Error.py, OPcode.py
- Sanyam Garg - GitHub Profile : Main.py
- Yash Bhardwaj - GitHub Profile : Functions.py
Feel free to reach out to the contributors for questions or issues related to their respective contributions.
If you encounter any issues or have suggestions for improvement, please provide feedback to help enhance the project.