2012-05-13 45 views
2

嗨差異必須代碼這個循環:大會MIPS評估只有BEQ

for($6=10;$6!=0;$6--){ 
    $7=$6; 
} 

但也有一些條件。我只能使用BEQ,並且必須假設每個寄存器的初始值是寄存器的編號。

如何僅使用BEQ來評估該差異?

我做了這個

main: 
    add $6,$5,$5 
    for: 
     add  $7,$6,$0 
     sub  $6,$6,$1 
     beq  $6,for 

,但我卡上的驗證。

+0

編碼是 「循環」 包括設置'$ 6'來'0'和'$ 7'爲'1',肯定? – paxdiablo

+0

當然。這是第一步。我們必須在MIPS機器代碼上轉換它。我知道如何做最後一步,但不是第一個(最容易):) – Favolas

回答

2
  1. 設置6美元等於10.爲什麼要6美元的初始值爲6當你 只是要覆蓋它?
  2. 輸入你的循環,並設置$ 7到$ 6。
  3. 減少$ 6並且如果$ 6等於零則跳轉到下一個標籤,否則 跳回到循環的開始處。

代碼:

li $6, 10 
for: 
    move $7, $6 
    subi $6, $6, 1 
    beq $6, $0, end 
    j for 
end: 
+0

再次,謝謝:) – Favolas