2013-04-08 153 views
2

好的,所以我必須將下面的C代碼段轉換爲MIPS彙編。將C代碼轉換爲MIPS彙編語言與數組

F = K + A [5]

問題告訴我,f爲存儲在寄存器$ s3中,k是在$ s2和陣列A的基地址是$ S4。這就是我把我的答案是:

加$ S3,S2 $,$ S4

這是正確的嗎?我需要對陣列中的5做什麼特別的事情嗎?我對MIPS非常陌生,所以任何和所有的幫助,如果非常感激。

+2

「C代碼轉換爲MIPS」 - [對計算機程序的整個家庭被指定到任務(http://en.wikipedia.org/wiki/Compiler) – 2013-04-08 19:47:02

回答

1

您是否正在爲此作業做作業?如果是這樣,你是真的寫出一個可執行程序或只是回答一系列問題?

無論哪種方式是的,你確實需要考慮數組中的5。問題是告訴你$s4指向數組的基地址,而不是第5個索引。

提示:A [0]與數組基地址相同。

+5

家庭作業標記已棄用 – wazy 2013-04-08 19:53:32

+0

@wazy感謝您的支持。我注意到當我搜索重新搜索時什麼都沒有出現,但沒有發現任何東西。是否有家庭作業類型問題的新標籤,或者是否僅僅放棄了這些天的答案呢? – Mercurybullet 2013-04-09 20:29:06

+0

對於任何感興趣的人,我在Meta上找到[此鏈接](http://meta.stackexchange.com/questions/10811/how-to-ask-and-answer-homework-questions/10812#10812)。事實上'家庭作業'標籤已被棄用。編輯我的迴應更有禮貌地問問題是否是功課,但仍然只是指導正確的答案。 – Mercurybullet 2013-04-09 22:24:01

0

試試看。 (在我頭頂上)。記住每個索引是* 4.

li $t2, 6   # init 6 to $t2 
addi $t2, $t2, $t2 # $t2 * 2 
addi $t2, $t2, $t2 # $t2 * 2 
addi $t1, $t2, $s4 # A[6 * 4] 
lw $t4, 0($t1)  # load A[6] int $t4 
addi $s3, $s2, $t4 # obtain f