文件名称:tinyvm:基于MVP堆栈的字节码VM
文件大小:9KB
文件格式:ZIP
更新时间:2024-04-21 15:47:22
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)