#virtual-machine #bytecode #ivm

ivm-vm

ivm字节的虚拟机

1个不稳定版本

0.1.0 2022年7月8日

#221 in 模拟器

自定义许可证

8KB
139

ivm的官方虚拟机/指令集。
有关更多信息,请参阅GitHub上的ivm wiki

什么是ivm?

ivm是一个实验性、文档齐全且可扩展的虚拟机/指令集,完全使用Rust编写。

ivm提供了一个相当中级的指令包装器,这使得将您的语言移植到ivm比想象中更容易。

示例

当与ivm-compile结合使用时,我们可以以惊人的轻松方式实现一些相当简单的结果。

let program_options = ProgramOptions::new(options::CCFV, MemoryPointerLength::X32b);

let instructions = [
    Instruction::Push(ReadOperation::Local(b"Hello, world!\n".to_vec())),
    Instruction::ExternCall(ivm_ext_x32::STDOUT_WRITE),
    Instruction::ExternCall(ivm_ext_x32::STDOUT_FLUSH),
];

let bytecode = ivm_compile::compile_all(&program_options, instructions);

let mut vm = VmInstance::init(program_options);

vm.introduce(bytecode);
vm.continue_execution().unwrap();

依赖项

~13KB