2009-12-02 64 views
1

我試圖編寫一個MIPS程序,將檢查可以從終端輸入的十個單個數字編號 (正,零或負)的集合。在檢查 號碼後,只有負號(帶有適當符號)及其計數需要輸出 到終端。MIPS計劃!需要幫助 - 我不知道如果我做對了

下面是我的MIPS計劃

 .data 
prompt: .asciiz "Input Score: " 
     .align 2 
HR_Neg:  .asciiz "\n negative Scores: " 
     .align 2 
HR_Pos:  .asciiz "\n positive Scores: " 
     .align 2 
HR_Negsc:  .asciiz "\n Number of Negative Scores: " 
     .align 2 
HR_Posc: .asciiz "\n Number of positive Scores: " 
     .align 2 
HR_coma: .asciiz ", " 
     .align 2 
HR_brk:   .asciiz "\n\n" 
     .align 2 
NEg:  .space 10 
     .align 2 
Pos:  .space 10 
     .align 2 

     .globl main 
     .text 
main: 
     li $t0, 0 
     la $t1, Neg 
     li $t2, 0 
     la $t3, pos 
     li $t4, 0 
     li $t5, 0 
     li $t6, 0 

loop: 
     li $v0, 4 
     la $a0, prompt 
     syscall 

     li $v0, 5 
     syscall 

     bltu $v0, 50, else 
     sw $v0, 0($t1) 
     addi $t1, $t1, 4 
     addi $t0, $t0, 1 
     b l_end 

else: 
     sw $v0, 0($t3) 
     addi $t3, $t3, 4 
     addi $t2, $t2, 1 

l_end: 
     addi $t4, $t4, 1 
     bltu $t4, 15, loop 

#output counts 
     li $v0, 4 
     la $a0, HR_negc 
     syscall 

     la $v0, 1 
     add $a0, $t0, 0 
     syscall 

     li $v0, 4 
     la $a0, HR_posc 
     syscall 

     la $v0, 1 
     add $a0, $t2, 0 
     syscall 

#output neg scores 
     li $v0, 4 
     la $a0, HR_neg 
     syscall 

     la $t1, Neg 
     lw $a0, 0($t1) 
     li $v0, 1 
+1

...什麼問題?它運行嗎?它是否提供了預期的輸出?如果不是,會發生什麼?它輸出什麼錯誤信息?你運行哪個測試用例不會產生預期的結果? – FrustratedWithFormsDesigner 2009-12-02 03:16:44

+0

我在大學學到了一門MIPS課程,令人驚奇,我記不得多少 – 2009-12-02 03:36:24

+0

不,它沒有運行。而且我好像在做錯事。我需要有人看看它,讓我知道我的程序有什麼問題... – kingcross9999999 2009-12-02 04:12:20

回答

1

請把你的代碼中的一些意見,以便我們這些誰感興趣的話可以試着去理解它是什麼要做。

此外,上面的代碼有一個錯誤,因爲您有一個標籤HR_Negsc和對HR_negc的引用,這讓我認爲當您說「它沒有運行」時,您實際上意味着它無法運行,因爲它沒有鏈接!

第1步 - 把一些評論中,特別是圍繞系統調用

第2步 - 獲取可以用來執行

第3步 - 現在你可以開始調試

有一對夫婦的你可以看看的區域:

.space給你多少空間,這足夠嗎?

您正在使用bltu指令來評估+ ve和-ve正確嗎?

你的程序如何結束 - 看起來像缺少一些東西?

LATER評論:

嘿,從one of your previous questions問題描述我懷疑某些那麼你寫的代碼一直延續到這個項目中。我指的是數字15和50.

你知道,當我們必須猜測你知道多少和不知道時,很難提供有用的幫助。問題越詳細,答案就越直接。其他一些問題的建議顯然仍然適用。