|
3 days ago | |
---|---|---|
assembler | 3 months ago | |
examples | 3 months ago | |
scripts | 4 months ago | |
src | 6 days ago | |
tests | 6 days ago | |
.gitignore | 3 months ago | |
LICENSE | 4 months ago | |
Makefile | 6 days ago | |
README.md | 3 days ago |
玩具64位栈式虚拟机和汇编器
FVM由两部分组成:虚拟机和汇编器
构建汇编器需要Chicken Scheme编译器。大部分主流Linux发行版都提供该编译器。
例如,在Arch Linux上:
sudo pacman -S chicken
然后,安装Chicken Scheme依赖包:
sudo chicken-install matchable srfi-69 srfi-4
然后运行make
。make
会自动构建两个组件。
make
构建成功后,会产生两个可执行文件:虚拟机fvm
和汇编器fvm-as
。
写完汇编代码后(examples/
目录中有示例),首先运行汇编器:
./fvm-as input.asm bytecode.bin
汇编器会生成字节码文件bytecode.bin
。然后运行虚拟机:
./fvm bytecode.bin
FVM包含4个寄存器:
FVM不包含通用寄存器,所有运算都在栈上进行。
大部分指令都是单字节的,除了立即数指令。
源代码文件src/fvm.h
中包含了完整指令列表。