如何在x86 linux上执行MIPS汇编程序?

时间:2009-01-21 07:14:08

标签: linux assembly x86 mips qemu

为了运行MIPS汇编程序,是否有任何命令行解释器或x86 linux的任何其他程序集?

我希望能够编写简单的MIPS汇编程序,并在本地计算机的控制台上运行它们。

我知道SPIM,但需要X Windows ,如果有更好的选择,我很好奇。

编辑:原来它不需要X Windows。我仍然有SPIM的问题。在我的拙见中,这不是最好的。 Qemu / Cross编译的工具链是一个更多的工作,但我有更少的怪癖。

8 个答案:

答案 0 :(得分:12)

顺便说一下,Spim不需要X Windows。它还有一个控制台界面。运行spimxspim

答案 1 :(得分:6)

您需要交叉编译工具链,或者构建自己的交叉binutils。 对于预建工具链,您可以访问code sourcery。如果你只想编译汇编,那么所有 你需要的是binutils。 Linux Mips wiki

有一些指导原则

对于仿真部分,QEmu将是我的选择。

答案 2 :(得分:6)

MARS使我对MIPS架构的汇编编程变得更加容易。如果你想要一个GUI / IDE,我肯定会推荐MARS。

答案 3 :(得分:3)

我昨天也处于同样的境地。我也不喜欢SPIM,所以这就是我做的:

  • 安装了gxemul和gxemul-doc(这些是debian上的软件包名称)
  • 按照文档中的详细说明在仿真的MIPS计算机上安装netbsd
  • 因为netbsd已经包含了标准的gcc工具链和vi,所以你很高兴。

    设置网络非常简单并且也有很好的文档记录。这样做的好处是不需要编写交叉编译。

  • 答案 4 :(得分:3)

    您可以使用gxemul,它模拟MIPS机器(包括Dreamcast等),并且能够运行许多操作系统(包括linux,netbsd等等)。

    gxemul-wikipedia

    gxemul-home page

    答案 5 :(得分:2)

    QEmu有一个很好的MIPS模拟器。将它与交叉编译的GCC / binutils相结合(从技术上讲,你只需要binutils来获得GAS,GNU汇编程序),你就可以了。

    答案 6 :(得分:1)

    也许你可以看看这些emulators?我不是专家,但名单似乎很好。

    答案 7 :(得分:0)

    假设您要使用GCC。

    在x84-64系统上编译MIPS,然后使用仿真器运行可执行文件的步骤:

    1. 使用交叉编译工具链生成可执行文件。

      • 如果您使用的是Debian / Ubuntu,请为MIPS安装交叉编译工具链。例如,以下两种APT软件包之一:gcc-mips-linux-gnu(MIPS大端)或gcc-mipsel-linux-gnu(MIPS小端)。

      • 使用mips-linux-gnu-gcc进行编译(mipsel-linux-gnu-gcc用于小尾数MIPS);使用mips-linux-gnu-as进行汇编; mips-linux-gnu-gcc链接。

    2. 使用仿真器运行可执行文件。

      • 安装一个仿真器,该仿真器可以在另一个CPU(例如x84-64)上启动为一个CPU(例如MIPS)编译的Linux进程:sudo apt-get install qemu-user
      • 使用以下仿真器运行针对MIPS编译的可执行文件:qemu-mips ./a.out(对于小尾数MIPS,则为qemu-mipsel ./a.out)。只需运行./a.out也可以;将使用模拟器。