【问题标题】:Compile code in C to MIPS assembly将 C 中的代码编译为 MIPS 程序集
【发布时间】:2011-08-05 16:18:45
【问题描述】:

我写了一个 C 程序,我需要在 MIPS 汇编代码中看到它。

如何安装或操作将 *.c 文件转换为 *.txt 或 *.something_else 的软件以查看其 MIPS 汇编代码?

我的操作系统是 Linux。

非常感谢!!

顺便说一句,我的代码是:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define SIZE 128

int main ()

{
    char mychar , string [SIZE];
    int i;
    int count =0 ;  

    printf ("Please enter your string: \n\n");
    fgets (string, SIZE, stdin);

    printf ("Please enter char to find: ");
    mychar = getchar();

    for (i=0 ; string[i] != '\0' ; i++ )
        if ( string[i]  == mychar )
            count++;

    printf ("The char %c appears %d times\n" ,mychar ,count);


    return 0;
}

【问题讨论】:

  • 只是在控制台写 gcc -S ?它会给我什么?
  • 对不起。我误解了这个问题:我认为您可以将代码编译到目标平台。 评论已删除

标签: c compiler-construction assembly mips


【解决方案1】:

您需要的是 MIPS 交叉编译器,除非您在 MIPS 机器上运行 Linux,在这种情况下您需要常规的 MIPS 编译器。 Here 是在 Linux 上设置交叉编译器的方法。

编译后,您会想查看 MIPS 反汇编。 objdump 可以帮到你。

【讨论】:

  • @C_guy:呸,RPMS 是邪恶的。您可以使用this 获取deb。
  • 我对那些交叉编译器发疯了...我无法理解那些手册中的任何内容...是否有 x 步骤可以将代码从 C 转换为 MIPS?
  • 如果您无法自己构建,请从CodeSourcery 获取预编译包。他们甚至有一个适用于 Windows 的软件包。
【解决方案2】:

您需要安装 MIPS 交叉编译库,然后需要将 -S-march=mips* 选项之一传递给 gcc。

【讨论】:

  • 在哪里可以找到这个目录?
  • 我从来没有听说过这个。听起来很棒。你是怎么做到的?
【解决方案3】:

您可以使用 Dan Kegels 优秀且易于使用的cross-tool 来编译您自己的 MIPS 交叉编译器。

【讨论】:

  • MIPSTOJAVA 看起来只需要一个 MIPS 可执行文件并输出 Java。在文档中看不到任何关于将 C 转换为 MIPS 源的内容。
猜你喜欢
  • 1970-01-01
  • 2023-03-20
  • 1970-01-01
  • 1970-01-01
  • 2014-09-01
  • 2011-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多