2012-03-21 208 views
0

我必須接受2個用戶輸入並找到產品,商和餘數。我不能使用乘法或除法運算符。如何在MIPS中編寫除法和餘數代碼?

Ive得到了multipication代碼

L1: 
add $t2,$s1,$s0 #diving $s0 by $s1 
bge $s1, $s0, EXIT # branch if ! (i < k) 
addi $s1, $s1, 1  # k++ 
add $t2, $s1, $s0 # i = i * 2 
EXIT: 

我怎麼會找商和餘數?我試圖只是改變所有的添加到分的,但沒有運氣。

回答

2

如果你用一個循環乘以兩個數字,然後使用減法與一個循環來劃分它們。一些僞代碼:

main: 
    #initialize registers 

loop: 
    #dividend -= divsor 
    #quotient++ 

    #temp = dividend - divsor 
    #if temp < 0 jump to done 
    #jump to loop 

done: 
    #remainder = temp 
+0

你知道如何在MIPS做到這一點? – 2012-03-23 18:02:57

+0

是的。你有沒有試過用我給你的僞代碼來實現一個新的解決方案?這是字面上可翻譯的線路。 – blackcompe 2012-03-23 18:30:56

2

使用下面的命令來獲得商和餘數

rem d, s1, s2  #d = s1 % s2; gives remainder