Building a custom VM for MIPS architecture.
- Python version 3
- Clang
- To ensure clang has the required extensions (this is not needed when running only asm files)
make
- To ensure the code is working properly through tests
make test
- For converting C++ programs to Assembly files
python highlevel_to_assembly.py
- For converting assembly file to bytecode
python assembly_to_bytecode.py tests/easy/auto_integers_basic.asm
- For executing bytecode
python bytecode_execution.py --asm tests/demo/auto_binary_search.asm
python bytecode_execution.py --source examples/demo/reverse_string.cpp
- Example of an assert statement
assert run_vm("tests/easy/auto_integers_basic_io.asm", [8, 20, -5]) == [8, 20, -5]
- Arithmetic & Logical Instructions
- Branch and Jump Instructions
- Functions
- Data Segment
- Floats
- Arrays
- String
- Print Statements
- Arithmetic & Logical Instructions
- Branch and Jump Instructions
- Unsigned & Negative Numbers
- Functions
- Data Segment
- Floats
- Arrays
- String
- Print Statements