26 个版本
0.13.7 | 2024 年 6 月 30 日 |
---|---|
0.13.5 | 2024 年 1 月 20 日 |
0.13.4 | 2023 年 10 月 7 日 |
0.13.2 | 2023 年 7 月 2 日 |
0.10.6 | 2020 年 3 月 28 日 |
#175 在 硬件支持
每月 22 次下载
445KB
15K SLoC
customasm
customasm
是一个汇编器,允许您提供自己的 自定义指令集 来汇编您的源文件!如果您正在尝试测试新虚拟机的字节码,或者如果您急于编写针对您在 FPGA 芯片中刚刚实现的新微处理器架构的程序,它将非常有用!
文档
📚 查看维基百科 以获取变更日志、文档和入门指南!
💲 查看命令行帮助!(在命令行本身上格式更好)
安装
您可以通过运行 cargo install customasm
直接从 crates.io 安装。然后,customasm
应用程序应自动在您的命令行环境中可用。
您还可以从 发布部分 下载预先构建的可执行文件。
您可以通过首先克隆存储库然后运行 cargo build
来从源代码进行编译。还有一系列测试可用,在 cargo test
。
示例
给定以下文件
#ruledef
{
load r1, {value: i8} => 0x11 @ value
load r2, {value: i8} => 0x12 @ value
load r3, {value: i8} => 0x13 @ value
add r1, r2 => 0x21
sub r3, {value: i8} => 0x33 @ value
jnz {address: u16} => 0x40 @ address
ret => 0x50
}
multiply3x4:
load r1, 0
load r2, 3
load r3, 4
.loop:
add r1, r2
sub r3, 1
jnz .loop
ret
...汇编器将使用 #ruledef
指令将指令转换为二进制代码
outp | addr | data (base 16)
0:0 | 0 | ; multiply3x4:
0:0 | 0 | 11 00 ; load r1, 0
2:0 | 2 | 12 03 ; load r2, 3
4:0 | 4 | 13 04 ; load r3, 4
6:0 | 6 | ; .loop:
6:0 | 6 | 21 ; add r1, r2
7:0 | 7 | 33 01 ; sub r3, 1
9:0 | 9 | 40 00 06 ; jnz .loop
c:0 | c | 50 ; ret
依赖关系
~0.8–1MB
~15K SLoC