# Fantasy Virtual Machine 玩具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个寄存器: - SP:栈顶指针 - BP:栈基指针 - PC:程序计数器 - RV:返回值 FVM不包含通用寄存器,所有运算都在栈上进行。 ## 指令 大部分指令都是单字节的,除了立即数指令。 源代码文件`src/fvm.h`中包含了完整指令列表。