我想学习PowerPC和ARM的汇编程序编程,但我无法为此目的购买真正的硬件。我正在考虑使用QEMU。但是我不确定它是否能够很好地模拟这两种体系结构,我将在本机汇编程序中编译和运行我的程序吗?
答案 0 :(得分:8)
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
相关联,这将避免许多令人头疼的问题。)
答案 1 :(得分:1)