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 仿真器

Download history 266/week @ 2024-08-12

266 每月下载量

MIT 许可证

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