9 个版本 (5 个重大变更)
0.6.0 | 2024 年 8 月 13 日 |
---|---|
0.5.0 | 2024 年 6 月 29 日 |
0.4.2 | 2024 年 5 月 15 日 |
0.3.0 | 2024 年 5 月 3 日 |
0.1.0 | 2024 年 4 月 6 日 |
#72 在 模拟
每月 166 次下载
265KB
4K SLoC
ensemble (LC-3 解析器、汇编器和模拟器)
欢迎!
这是一个用 Rust 编写的 LC-3 ISA 解析器、汇编器和模拟器库!
它还内置了一个基本的 CLI,具有汇编和模拟的能力。
lib.rs
:
LC-3 解析器、汇编器和模拟器。
这是一个旨在用于 LC-3 汇编的通用套件(作为乔治亚理工学院 CS 2110 LC3Tools 后端)。
使用方法
要将 LC-3 源代码转换为对象文件,必须进行解析和汇编
use lc3_ensemble::parse::parse_ast;
use lc3_ensemble::asm::{assemble, assemble_debug, ObjectFile};
let code = "
.orig x3000
AND R0, R0, #0
AND R0, R0, #7
HALT
.end
";
let ast = parse_ast(code).unwrap();
// Assemble AST into object file:
let obj_file: ObjectFile = assemble(ast).unwrap();
// OR:
let obj_file: ObjectFile = assemble_debug(ast, code).unwrap();
创建对象文件后,可以用模拟器执行
use lc3_ensemble::sim::Simulator;
let mut simulator = Simulator::new(Default::default());
simulator.load_obj_file(&obj_file);
simulator.run().unwrap(); // <-- Result can be handled accordingly
如果需要更细粒度的模拟,还有步进和步退函数。有关更多详细信息,请参阅 [sim
] 模块。
依赖项
~2MB
~11K SLoC