我想学习 PowerPC 和 ARM 的汇编程序编程,但我无法为此购买真正的硬件。我正在考虑为此使用QEMU。但是我不确定它是否足够好地模拟这两种架构,我会在本机汇编程序中编译和运行我的程序吗?
2 回答
QEMU 可以很好地测试程序校正(即代码是否可以在实际的 ARM 或 PowerPC 上正确运行),但它不适合测试程序效率:仿真不是周期准确的,并且使用 QEMU 测量的速度不能可靠(甚至不可靠)与真实硬件上的速度相关。
此外,QEMU 不会捕获未对齐的内存访问,这对于 PowerPC 仿真(PowerPC 允许未对齐的访问)来说不是问题,但对于 ARM(未对齐的访问,例如从非对齐的地址读取 RAM 中的 32 位字)可能是问题。 4 的倍数,可以在 QEMU 上正常工作,但会在真正的 ARM 处理器上触发异常)。
除了这些点之外,QEMU 非常适合在 ARM 或 MIPS 上进行汇编开发(没有尝试过 PowerPC,因为我在 eBay 上找到了一本旧 iBook;但我已经用 QEMU 完成了 ARM 和 MIPS 汇编,然后在真正的硬件,这有效)。您可以模拟整个系统并在其中运行 Debian(在这种情况下,编译器、链接器、文本编辑器......也将在模拟中运行),或者使用运行 ARM/MIPS 可执行文件的“用户模式模拟”直接,使用包装器将系统调用转换为主机 PC 的系统调用(假设主机是运行 Linux 的 PC)。后者更方便(您可以访问正常的主目录,编程工具是本地的......)但需要安装交叉开发工具。请参阅buildroot(并链接到-static
,这将避免很多麻烦)。