Virtual machine with custom assembler and object file format.
As addition there is a linker and a sort of objdump for my binary format.
Instructions set can be found here
VM can be ran via web interface with Golang(>=1.19) server as a backend:
- Top-left - screen
- Top-right - code input area
- Bottom-right - logs
- Bottom-left - console
User's programm first assemebled and then linked against standard library
On success, in log field will appear result of objdump for linked executable.
Another example with drawСircle
library function.
Console interaction techniques can be seen here and screen
Golang >=1.19 must be installed.
cmake -B ./build -DCMAKE_BUILD_TYPE=Debug
cmake --build ./build --config Debug --target install
cmake --build ./build --config Debug --target BuildServerStdLib
ctest --test-dir ./build -C Debug --output-on-failure
After configure and build steps:
cd server && go run . --addr :8080
Then open localhost:8080 in browser.