项目简介
Dynarmic是一个针对ARM架构的动态重编译器,其核心功能是把ARM指令集动态转换为x86 - 64指令集,以此实现在非原生平台上运行ARM二进制文件。该项目支持ARMv6K和64位ARMv8架构,且仅以x86 - 64作为目标架构。项目设计目标是实现高性能的ARM指令集模拟,不过在部分情况下会牺牲一定的精确性。
项目的主要特性和功能
支持的架构
- 客机架构:ARMv6K、64位ARMv8
- 主机架构:x86 - 64
主要功能
- 动态将ARM指令集重编译为x86 - 64指令集。
- 提供用户回调接口,方便用户自定义内存系统和异常处理。
- 支持用户模式模拟,但不支持其他特权级别。
- 提供近似浮点状态(FPSR)和部分异常处理。
已知限制
- 仅支持用户模式,不支持其他特权级别。
- 浮点状态(FPSR)是近似的。
- 某些情况下,未对齐的加载/存储不会被正确捕获。
- 独占监视器的行为可能与任何已知的物理处理器不匹配。
安装使用步骤
编译项目
使用C++编译器(如g++或clang++)编译项目,要确保所有依赖项已正确安装。
bash
g++ -std=c++17 -o dynarmic main.cpp -ldynarmic
运行示例
使用提供的示例代码运行项目,示例代码展示了如何设置环境、加载代码并执行ARM指令。
bash
./dynarmic
自定义配置
用户可根据需要自定义内存系统、异常处理和回调函数。参考MyEnvironment
类的实现,继承Dynarmic::A32::UserCallbacks
接口并实现所需的方法。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】