【文件属性】:
文件名称:tinyvm:基于MVP堆栈的字节码VM
文件大小:9KB
文件格式:ZIP
更新时间:2021-04-01 22:00:42
Rust
TinyVM
基于MVP堆栈的字节码VM
该VM运行简单的图灵完整指令集。
在〜250个LOC中带有大量注释,这意味着它易于理解,并且可以用Rust以外的语言轻松复制。
它还包括一个基本的编译器,可以执行test_files文件夹中的程序。
指示
操作说明
描述
推(isize)
将参数推入栈顶
流行音乐
删除栈顶的值
添加
弹出前两个值,然后将它们的和求和
子
弹出前两个值并推开它们的差值
穆尔
弹出前两个值并推送其乘积
DIV
弹出前两个值并推它们的商
跳转(标签)
将指令指针设置为标签
JNE(标签)
如果栈顶不为零,则跳转
JE(标签)
如果栈顶为零则跳转
JGT(标签)
如果堆栈顶部大于零,则跳转
JLT(标签)
如果堆栈顶部小于零,则跳转
JGE(标签)
如果栈顶大于或等于零则跳转
JLE(标签)
如果堆栈顶部小于或等于零,则跳转
致电(程序)
调用
【文件预览】:
tinyvm-main
----.gitignore(8B)
----README.md(4KB)
----Cargo.toml(320B)
----src()
--------main.rs(15KB)
----test_files()
--------procedure.bytecode(200B)
--------recursion.bytecode(300B)
--------fib_recurse.bytecode(365B)
--------ackermann.bytecode(884B)
--------fib.bytecode(613B)
--------hello_world.bytecode(617B)
--------sum.bytecode(449B)
----Cargo.lock(146B)