2012-05-13 26 views
2

我目前正在學習如何使用MIPS和QTSPIM仿真器進行編碼。我認爲製作一個簡單的算術計算器是一個好習慣,所以我開始編寫代碼。 到目前爲止,程序要求輸入數字,讀取數字,要求進行操作(用戶必須輸入操作符號+, - ,*,/或首字母a,s,m,d)。下一步是將接收到的輸入與某些東西進行比較... 這是我卡在的部分。 我首先想到的是有4個寄存器與已經在其中的角色,所以我嘗試在MIPS中製作計算器?

li $t5,a 
    li $t6,s 
    li $t7,m 
    li $t8,d 

然而,這只是給了我一個語法錯誤。我嘗試了其他類似的方法,但不斷收到錯誤。 我的目標是在用戶輸入比較這4個寄存器,然後移動到哪裏$ t2包含用戶的文字輸入操作

beq $t2,$t5,add 
    beq $t2,$t6,sub 
    beq $t2,$t7,mul 
    beq $t2,$t8,div 

。然後分支到合適的標籤來執行操作。

有沒有更容易的方法來做到這一點,我忽略了? 謝謝你的時間。

+0

+1嘗試一些困難:-)。對不起,雖然我從來沒有碰過MIP彙編程序,但無法回答。看看關於MIPS彙編程序的這個講座,看看它是否有幫助:http://pages.cs.wisc.edu/~cs354-2/cs354/karen.notes/MAL.instructions.html –

+1

謝謝!它確實有幫助:)我設法解決了我的問題,但我無法回答自己的問題幾個小時xD我會發布解決方案,以防其他人遇到此問題。 – iVikD

回答

0

好吧,我設法解決我自己的問題XD 的解決方案是有點原始,但它的作品... 改變了操作提示"1 for addition, 2 for subtraction, 3 for multiplication, 4 for division",並與這些用戶輸入,

beq $t2,1,add 
    beq $t2,2,sub 
    beq $t2,3,mul 
    beq $t2,4,div 

其餘的只是操作本身。 以爲我會在這裏留下這個以防萬一有人遇到類似的問題。 也許我會增加內存和清除功能

0

要設置一個ASCII碼的寄存器,你需要用單引號括起來。 在你的例子中,它將是

li $t5,'a' 
    li $t6,'s' 
    li $t7,'m' 
    li $t8,'d' 
+0

嗯,我可以發誓我試過了,仍然有一個錯誤...也許我在某個地方犯了一個錯誤...我會看看,然後再試一次。謝謝。 – iVikD