2011-04-14 573 views
3

我寫了一個C程序,我需要在MIPS彙編代碼中看到它。編譯C代碼到MIPS彙編

如何安裝或操作將* .c文件設置爲* .txt或* .something_else以查看其MIPS彙編代碼的軟件?

我的操作系統是Linux。

非常感謝!

BTW我的代碼是:

#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; 
} 
+0

只需在控制檯中編寫gcc -S?它會給我什麼? – 2011-04-14 16:10:13

+0

對不起。我誤解了這個問題:我認爲你可以將你的代碼編譯到目標平臺上。 *評論刪除* – pmg 2011-04-14 17:04:54

+0

http://en.gentoo-wiki.com/wiki/Crossdev – 2011-04-14 18:22:57

回答

4

你想要的是一個MIPS交叉編譯器,除非你在一個MIPS箱,在這種情況下,你要經常MIPS編譯運行Linux。 Here是在Linux上設置交叉編譯器的一個指導。

編譯完成後,您需要查看MIPS反彙編。 objdump可以幫助你。

+0

我在WIN7下使用VmWare運行Ubuntu_9.1 ... – 2011-04-14 16:01:14

+1

@C_guy:Bah,RPMS是邪惡的。您可以使用[this](https://eng.ucmerced.edu/root01/SoE_April_07/ComputingSupport/il/collaboratory/collab-software/compilers-and-interpreters/mips-cross-compiler-package)來獲取deb。 – nmichaels 2011-04-14 16:03:28

+0

我開始討論這些交叉編譯器的問題......我無法從這些手冊中理解任何內容......是否有將x代碼轉換爲MIPS的x步驟? – 2011-04-14 16:53:00

3

您需要安裝MIPS交叉編譯庫,然後您需要將-S-march=mips*選項之一傳遞給gcc。

+0

我可以在哪裏找到這個目錄? – 2011-04-14 17:10:04

+0

我從來沒有聽說過這個。這聽起來很棒。你怎麼做到這一點? – 2011-04-14 21:04:13

1

您可以使用Dan Kegels的優秀且易於使用的編譯器cross-tool來編譯自己的MIPS交叉編譯器。

+0

MIPSTOJAVA看起來只需要一個MIPS可執行文件並輸出Java。在文檔中看不到有關將C轉換爲MIPS源代碼的任何內容。 – 2012-09-27 09:48:08