4 个版本
0.2.1 | 2024 年 8 月 15 日 |
---|---|
0.2.0 | 2024 年 8 月 15 日 |
0.1.2 | 2024 年 8 月 12 日 |
0.1.1 | 2024 年 8 月 12 日 |
#55 in 仿真器
266 每月下载量
130KB
2K SLoC
Esoteric Virtual Machine
阅读文档以获取更多信息。
lib.rs
:
一种奇特的虚拟机。
使用 Machine::default
创建新的虚拟机,并使用 Machine::load
加载机器代码和数据。
示例
use esoteric_vm::{esoteric_assembly, Machine};
// initialize a new machine
let mut machine = Machine::default();
// assembly code for the machine
let asm = esoteric_assembly! {
// initialize dot pointer so that IO operations work
// push a dot character to stack
0: pushi b'.';
// pop to address 28657
2: pop 28657;
// set dot pointer to 28657 (has to be a prime or semiprime, which is also a fibonacci number)
5: ldidp 28657;
// -----------------
// print hello world
8: writeline 13;
// halt machine
11: Ωtheendisnear;
12: Ωskiptothechase;
// hello world text
13: data b"Hello, world!\n\0";
};
// load machine code
machine.load(&asm, 0);
// run machine until it halts
machine.run();
// return the machine's register A (unused)
machine
依赖项
~3–12MB
~147K SLoC