This project involves developing a program that translates VM code into Assembly code. VM code is a higher-level, more abstract form of code, which needs to be converted into Assembly code that can be directly executed by a computer's CPU. The project focuses on different aspects of VM code conversion, including basic commands, pointer handling, static variables, simple arithmetic operations, and stack management.
Key Components: Basic Commands: Conversion of simple VM commands to their corresponding Assembly instructions. Pointer Handling: Proper translation of pointer-related VM commands to Assembly code. Static Variables: Management and conversion of static variable commands from VM to Assembly. Simple Arithmetic Operations: Translating basic arithmetic operations like addition from VM code to Assembly code. Stack Management: Handling stack operations and ensuring correct stack manipulation in the resulting Assembly code. Project Output: The project results in a program that takes VM code as input and produces Assembly code as output. The output is tested for various cases including basic command translation, pointer handling, static variables, simple arithmetic operations, and stack management. This project demonstrates the ability to bridge the gap between high-level VM code and low-level Assembly code, showcasing a fundamental aspect of computing systems and compiler design. The project highlights the importance of understanding both abstract programming constructs and concrete machine-level operations.