stinkarm:让 ARMv7 模拟器不再“臭”

Making stinkarm stink less, or more?

stinkarm:让 ARMv7 模拟器不再“臭”

半年前我写了从零构建 stinkarm 用户态 ARMv7 模拟器的文章,这次来谈谈如何让它“少臭点”。针对社区关于内存翻译效率的反馈,我放弃了复杂的 BTreeMap 映射追踪,转而直接分配 4GB 内存区域,将地址转换简化为一次加法操作。此外,我通过引入 DSL 宏来定义指令解码规则,实现了按需解码,并加强了边界检查以防止未授权内存访问。这次更新不仅优化了性能,也让代码结构更清晰、更易维护。

我知道使用 Trie 树之类的结构可能会更快,但当前的实现可读性强、易于理解且方便维护。

同日更多故事

2026-08-21