mipsc編譯器
① 怎麼把c語言代碼轉換為MIPS
把C語言代碼轉換為MIPS:
以下是c語言代碼:
while (candidate_gcd <= min)
{
if (((a mod candidate_gcd) == 0) &&((b mod candidate_gcd) ==
0))
{
current_gcd = candidate_gcd;
}
candidate_gcd = candidate_gcd + 1;
}
以下為轉換為mips後的代碼:
首先設置變數:
candidate_gcd = $t0
min = $t1
a mod candidate_gcd = $t2
b mod candidate_gcd = $t3
current_gcd = $t4
$t6 = 0
$t5
代碼如下:(綠色為注釋)
Label3: //設置標簽Label3
ble $t0,$t1,Label //當$t0 小於等於$t1 時,跳到標簽Label
Label: //設置標簽Label
Add $t5,$t2,$t3 //將$t2 和$t3 相加賦值給$t5
Li $t6,0 //給$t6 賦值為0
Leq $t5, $t6,Label1 //判斷如果$t6=$t5=0,跳到標簽Label1
Label1: //設置標簽Label1
Move $t4, $t0 //$t4=$t0
Addi $t0, $t0,1 //$t0=$t0+1(自加加)
J Label3 //跳到標簽Label3,這里其實就是實現c 語言
中的while 無限循環
② 寫出以下C語言過程對應的MIPS匯編表示
硬體平台是什麼?pc上還是51上或者arm,mips?不
同硬體平台匯編不同,編譯器對程序的處理也就不同。
用匯編一般都是考慮到可以直接訪問寄存器,速度有優勢,但最大的缺點是不能跨平台,可移植性很差。
③ windows系統上如何運行mips程序
實際上 MinGW 並不是一個 單純的C/C++ 編譯器,而是一套 GNU 工具集合。除開 GCC 以外,MinGW 還包含有一些其他的 GNU 程序開發工具 (比如 gawk bison 等等)。
開發 MinGW 是為了那些不喜歡工作在 Linux(FreeBSD) 操作系統而留在 Windows 的人提供一套符合 GNU 的 GNU 工作環境。
所以,使用 MinGW 我們就可以像在 Linux 下一樣使用 GNU 程序開發工具。
GCC 就是 MinGW 的核心所在,GCC 是一套支持眾多計算機程序語言的編譯系統,而且在語言標準的實現上是最接近於標準的。並且 GCC
幾乎可以移植到目前所有可用的計算機平台。(我的電腦上就還裝有 DevKitPro,裡麵包含
④ C語言切換成MIPS匯編語言,B[8] = A[i-j];
sub $t0, $s3, $s4 #i-j
sll $t0, $t0, 2 #$t0=4(i-j),因為一個字佔四個位元組,所以i-j個字要4倍,mips中是位元組地址
add $t0, $t0, $s6 #¥t0=A的地址加上$t0,即是A[i-j]的地址
lw $t1, 0($t0) # 按相應地址從存儲器復制值,賦給$t1
sw $t1,32($s7) #8個字,32個位元組,所以加上32,這一步為將$t1中的值存儲到存儲器相應地址,這個地址就是&B[8]了,即B的基礎地址加上位元組數!
此時應該完成了
⑤ 求助緊急!!將下面c語言編寫的程序翻譯成MIPS語言! int a,b,c;a=num&ref;b=num-a;c=b;
MIPS匯編吧,只能用MIPS的編譯器mips-gcc什麼的加-S選項把C代碼翻譯成匯編吧
⑥ 怎麼用C語言編程測試計算機的MIPS或MFLOPS值
准確測試cpu的mips或者mflops一般是設計體系結構時候用cpu模擬器或者verilog前仿得到的。對於用C語言比較准確的測試mips或者mflops,你可以用一個程序讀取系統時間,然後執行第二個程序,第二個程序執行完成後再記錄執行的時間,然後反匯編第二個程序,統計第二個程序中執行的指令條數,通常第二個程序中執行的指令數是確定的,(分支和循環的次數是可確定的)。mips和mflops在risc cpu的評價中比較有價值,感覺cisc稍差一些。
⑦ C/C++代碼可以轉成mips匯編代碼嗎
可以的
最簡單的方式
用Mips的交叉編譯工具 mips-gcc
或者g++
編譯C/C++文件, 編譯選項加上-S
這樣-o指定的輸出文件 就是匯編代碼。
比如
mips-gcc a.c -S -o a.S
生成的a.S 就是a.c對應的匯編代碼了。
⑧ C語言編寫好代碼後,怎麼編譯,最後生成可執行文件
材料/工具:vc6.0
1、打開c語言編輯工具,在工具中寫入程序的源代碼。
⑨ C語言編譯器icc與gcc編譯出來的執行文件有什麼區別
ICC 是intel 針對intel 體系架構開發的編譯器,顯然,你的代碼,如果運行在intel機器上,intel的人開發的編譯器,編譯出來的可執行代碼效率更高。畢竟人家對intel體系結構這么熟悉,裡面的優化說明的,肯定做得不錯。但是只能運行在intel體系結構上。比如你的PPC的板子就不能運行了。
GCC是一般性的通用的編譯器,可以編譯運行在各種體系結構上的代碼,比如intel, PPC, ARM, MIPS。它很通用。裡面的開發者,當然也熟悉intel 體系架構。但是也要考慮到通用。所以,是一般化的選擇。在intel體系結構上運行的話,可能某些地方不如ICC的效率高。
他們實現的原理基本是一致的,但是在細節上,肯定差別很大。比如針對同一種語句,有的會告警,有的不會。有些支持擴展特性。有些不支持。