2010-05-23 55 views
3

還好,C++和java我沒有問題,學習或什麼那麼 當談到MIPS它就像地獄Mips,如何讀取數組並打印它們?

好吧,我想學習如何在一個陣列中的閱讀和打印所有的元素出來

這裏是一個簡單的數組,我寫

int[] a = new int[20]; 

for(int i=0; i<a.length; i++){ 
    a[i]=1; 
} 

for(int j=0; j<a.length; j++){ 
    System.out.Println(a[i]) 
} 

你怎麼MIPS

+1

這聽起來像是一個家庭作業問題 - 沒有很多人沒有理由寫MIPS彙編。爲什麼你不能得到一個針對MIPS的C++編譯器,只是看它的輸出?這至少會讓你開始。 – 2010-05-23 20:16:35

回答

2

假設你在寄存器$ A1的陣列地址做到這一點,你可以做到以下幾點:

li $t0, 1 
    move $t1, $a1 
    addi $t2, $a1, 80 
loop1: 
    sw $t0, ($t1) 
    addi $t1, $t1, 4 
    bne $t1, $t2, loop1 

move $t1, $a1 

loop2: 
    lw $t0, ($t1) 
    li $v0, 1 
    move $a0, $t0 
    syscall 
    addi $t1, $t1, 4 
    bne $t1, $t2, loop2 

此代碼應產生相同的結果作爲Java代碼,不同之處在於您使用的println(其將在一個新行打印每個元件),並且該代碼將打印該陣列的所有元件在同一直線上。

我不知道你有沒有注意到,但你的Java代碼和該代碼將打印全1,如果你想從1號打印到19,你將不得不增加$ T0,裏面LOOP1