#risc-v #wrapper #api-bindings #instructions #disassembler #spike-dasm #disasm

spike-dasm-wrapper

基于 spike-dasm 的 RISC-V 指令反汇编器

2 个版本

0.0.2 2020年9月30日
0.0.1 2020年9月30日

#38 in #disassembler

MIT/Apache

1MB
21K SLoC

C 12K SLoC // 0.4% comments C++ 9K SLoC // 0.0% comments Shell 210 SLoC // 0.3% comments M4 165 SLoC // 0.6% comments Python 116 SLoC // 0.0% comments Rust 67 SLoC GNU Style Assembly 50 SLoC // 0.3% comments

包含 (自动工具混淆代码, 185KB) riscv-isa-sim/configure, (模糊自动配置代码, 5KB) riscv-isa-sim/configure.ac

spike-dasm-wrapper

spike-dasm-wrapper 是 riscv-isa-sim 中的 spike-dasm 的包装器。[链接](https://github.com/riscv/riscv-isa-sim)

使用方法

[dependencies]
spike-dasm-wrapper = "0.0.2"

示例

use spike_dasm_wrapper::{Disasm};

fn main() {
	let mut disasm = Disasm::new();

	let dis_str = disasm.disassemble(0x0000_0000);
	assert_eq!(dis_str, "c.addi4spn s0, sp, 0");

	let dis_str = disasm.disassemble(0x01c28293);
	assert_eq!(dis_str, "addi    t0, t0, 28");

	let dis_str = disasm.disassemble(0x4201);
	assert_eq!(dis_str, "c.li    tp, 0");
}

许可证

许可协议为以下之一

  • Apache 许可协议第 2.0 版 ([LICENSE-APACHE](https://github.com/msyksphinz-self/spike-dasm-wrapper/blob/8b4a31610c10df2e34d2a425617b649162b20eb7/LICENSE-APACHE) 或 [https://apache.ac.cn/licenses/LICENSE-2.0](https://apache.ac.cn/licenses/LICENSE-2.0))
  • MIT 许可协议 ([LICENSE-MIT](https://github.com/msyksphinz-self/spike-dasm-wrapper/blob/8b4a31610c10df2e34d2a425617b649162b20eb7/LICENSE-MIT) 或 [http://opensource.org/licenses/MIT](http://opensource.org/licenses/MIT))

任选其一。

贡献

除非您明确声明,否则任何有意提交以包含在作品中的贡献,根据 Apache-2.0 许可协议定义,应按上述方式双重许可,不附加任何额外条款或条件。

无运行时依赖