2014-10-07 35 views
0

嗨,我是MIPS編程的新手,很難掌握MIPS的語法和規則。我正在編寫一個程序,它接受3個整數的用戶輸入並將它們從最小到最大排序。到目前爲止,我有代碼對用戶在MIPS中輸入的3個整數進行排序

.data 
prompt: .asciiz "Enter an integer: " 

.text 
.global main 

main: 
li $v0, 4 
la $a3, prompt 
syscall 

li $v0, 5 
li $a0, $v0 
syscall 

li $v0, 5 
li $a1, $v0 
syscall 

li $v0, 5 
li $a2, $v0 
syscall 

我很困惑,如何採取輸入,並將其存儲到$ A0〜$ A2 3個獨立的寄存器。 另外,我不知道如何聲明一個帶參數的函數。我也想知道如果上面的代碼收集用戶輸入是正確的,因爲我認爲我在這裏做錯了什麼。我不習慣這種低級語言,但在Java中很流利。如果有助於簡化它,那麼可以用Java來解釋任何解釋。由於

+0

任何人????????? – Heyya 2014-10-07 04:12:47

回答

0

幾點這裏:

li是裝載立即數。您可能需要move兩個寄存器。你不需要加載5次三次。

要打印字符串,請將字符串加載到$ a0中。

如果你流利Java,排序算法應該沒有問題。你甚至不需要一個功能。

函數使用jal來保存返回地址並使用$ a0- $ a3寄存器轉到函數。如果你不知道它是如何工作的,你應該查閱這個教程。

+0

感謝您的回覆。我必須有一個功能,因爲這是我的教授想要的。我知道如何在java中排序,但我不知道如何將它翻譯成MIPS語言。你能給我一個MIPS排序算法的例子嗎?在此先感謝 – Heyya 2014-10-07 04:46:30

+0

@Heyya我不確定,但因爲你只有3個數字排序應該是相當微不足道的。你可能會放棄一些掉期(一個非常小的泡沫排序版本)。 – qwr 2014-10-07 20:24:27

相關問題