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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在x86 linux上执行MIPS汇编程序?相关的知识,希望对你有一定的参考价值。

x86 linux周围是否有任何命令行解释器或任何其他程序集,以便运行MIPS汇编程序?

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

我知道SPIM,但是它需要X Windows,我很好奇是否有更好的选择。

编辑:事实证明它不需要X Windows。我仍然对SPIM有问题。我的拙见不是最好的。 Qemu / Cross编译的工具链需要更多工作,但我的怪癖却更少。

答案

您将需要交叉编译工具链,或构建自己的交叉binutils。对于预构建的工具链,您可以访问code sourcery。如果只想编译程序集,那么所有您需要的是binutils。Linux MipsWiki上有一些准则

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

另一答案

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

另一答案

MARS使我的MIPS体系结构的汇编编程变得非常容易。如果您想要GUI / IDE,我肯定会推荐MARS。

另一答案

昨天我的情况也一样。我也不喜欢SPIM,所以这是我做的:

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

    建立网络非常容易,而且文档也很丰富。这样做的好处是无需摆弄交叉编译。

  • 另一答案

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

    gxemul-wikipedia

    gxemul-home page

    另一答案

    QEmu具有良好的MIPS仿真器。将其与交叉编译的GCC / binutils结合使用(从技术上讲,您只需要binutils即可获得GAS和GNU汇编器),您就可以使用了。

    另一答案

    也许您可以看看这些emulators?我不是专家,但列表似乎不错。

    另一答案

    假设您希望使用GCC。

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

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

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

      • 使用mips-linux-gnu-gcc进行编译(对于小端MIPS,则为mipsel-linux-gnu-gcc;用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也可以;将使用模拟器。

    以上是关于如何在x86 linux上执行MIPS汇编程序?的主要内容,如果未能解决你的问题,请参考以下文章

    X86汇编6.编写汇编语言程序

    如何在ARM / MIPS平台上检查XN / XI位支持的硬件支持

    MIPS简单入门

    从 apk 中排除 abi

    MIPS下shellcode编写

    如何在 Linux 上执行适用于 x86、arm、GCC 和 icc 的原子操作?