1 个不稳定版本

使用旧的 Rust 2015

0.1.0 2017年4月27日

#235#汇编

MIT 许可协议

21KB
380

mlem-asm

Crates.io version badge Docs.rs version badge

本crate提供了一个MLeM虚拟机的汇编器。它汇编代码如下

; a simple program that prints some ASCII characters
; from space to tilde
move L:96  R:R7     ; 0 Set the counter
move L:31  R:R0     ; 1 Set the initial value to output
add R:R0 L:1        ; 2 Increment the value to output
output R:R0         ; 3 Output that value
sub R:R7 L:1        ; 4 Update the counter
jnz L:2 R:R7        ; 5 Loop if the counter is not 0
halt                ; 6 Allow the program to complete successfully

这实际上是 test.asm 的内容。示例目录中提供的前端可以用来汇编和运行此程序,因此

14:38:41: leo [~/Projects/mlem-asm]
$ cargo run --example mlem-asm r ~/Projects/mlem-asm/test.asm
    Finished dev [unoptimized + debuginfo] target(s) in 0.0 secs
     Running `target/debug/examples/mlem-asm r /home/leo/Projects/mlem-asm/test.asm`
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
Halt

依赖项

~2.5MB
~62K SLoC