#assembly #vm #hack #translation #translator #machine #instructions

bin+lib vm_translator

A VM translator for the hack machine (ref: The Element Of Compting System)

4 releases

0.3.0 Jun 26, 2024
0.1.2 Apr 17, 2024
0.1.1 Apr 16, 2024
0.1.0 Jan 21, 2024

#5 in #translator

MIT license

30KB
632 lines

Hack machine VM Translator

Description

This is a vm translator written in rust to facilitate the translation of the supported vm command to its associated Hack's assembly instruction.

I have ensured the translator documents each processed command to make debugging easier.

Version 2: Stage 2 translator

  • provide stack pointers initialization requirements
  • provide jump statement requirment
  • function init and goto statement
  • conditional goto
  • testing with recursion

Usage

git clone --depth=1 --no-checkout https://github.com/xpanvictor/hack/ && cd hack && git sparse-checkout set software/vm_translator && git checkout
cd software/vm_translator
cargo run <VM_FILE_PATH.vm>

Where
VM_FILE_PATH.vm: a path leading to file to translate

NOTE
The output file is stored in VM_FILE_PATH.asm.


lib.rs:

VM TRanslator

Does the job of translating using the other modules

Dependencies

~0.6–1.1MB
~24K SLoC