2015-03-02 57 views
-1

所以我寫了一個簡單的程序在MIPS程序集中用於我的comp arch類。我們現在需要增強這個程序,以便它有兩個參數。如果參數都相同,那麼答案應該與只有一個參數的原始程序的答案相同。如果它們不同,那麼你應該根據上述內容來確定你的程序應該做什麼。儘量做出儘可能少的改變。增強程序以允許它從鍵盤接收兩個參數並將結果顯示在SPIM的控制檯窗口中。如果任何輸入參數是負數(小於零),則增強的程序應該在控制檯中顯示一個零。如何在MIPS程序集中添加參數?

這裏是未增強的部分我的代碼:

.data 
arg: .word 5 

.text 
.globl main 
main: 

la $t3, arg  
lw $t2, 0($t3) 
lw $t3, 0($t3) 

addi $t1, $zero, 0 
beqz $t2, fin   
fori: 

add $t1, $t1, $t2 
addi $t3, $t3, -1 

bnez $t3, fori  

fin: 

li $v0, 10 
syscall 
+0

好的,如果任何人都可以幫助那會很棒。我知道如何創建一個論點。我只是這樣做:arg1:.word 5和arg2:.word 5.但我怎樣才能得到這個鍵盤輸入? – 2015-03-02 21:58:26

+0

https://www.doc.ic.ac.uk/lab/secondyear/spim/node8.html。 – markgz 2015-03-02 22:28:18

+0

mark gz我還是輸了,你能幫忙還是找個類似的例子? – 2015-03-03 03:41:00

回答

0

這裏的代碼,從鍵盤讀取一個整數並將其存儲在arg1

 .data 
    arg1: .word 0 
     .text 
     li $v0, 5  # system call code for read int 
     syscall   # read the int 
     la $t0, arg1 
     sw $v0, 0($t0) # store the integer at location arg1 
+0

謝謝!所以我現在得到如何讀寫整數到控制檯,但我很困惑如何將該實現添加到現有的程序。任何指針或建議? – 2015-03-05 06:03:30