-2
我想要的C++代碼的下面一行轉換成MIPS彙編:翻譯C++來MIPS彙編
cout << a2[i]
這是我試過的代碼,但我得到不正確的結果。
*變量i保存在$ t5中。
li $v0, 1
la $a0, a2
sll $t5, $t5, 2
add $a0, $a0, $t5
srl $t5, $t5, 2
lw $a0, 0($a0)
syscall
我想要的C++代碼的下面一行轉換成MIPS彙編:翻譯C++來MIPS彙編
cout << a2[i]
這是我試過的代碼,但我得到不正確的結果。
*變量i保存在$ t5中。
li $v0, 1
la $a0, a2
sll $t5, $t5, 2
add $a0, $a0, $t5
srl $t5, $t5, 2
lw $a0, 0($a0)
syscall
當談到MIPS時,我有點生疏。但是,我確實記得一些事情。
除非將參數傳遞給函數,否則通常不應使用$ a寄存器(與使用系統調用相同)。
因此,在這兩種情況下,我會用臨時寄存器來代替:
la $a0, a2
add $a0, $a0, $t5
成爲
la $t0, a2
add $t1, $t0, $t5
然後:
lw $a0, 0($t1)
syscall
而且你大概可以忽略此作爲好:
srl $t5, $t5, 2
除此之外,我會問你收到什麼樣的錯誤輸出?
你編碼的平臺是什麼? 'a2'的類型是什麼?索引操作符是否被重載? –
您是否考慮編譯代碼並檢查輸出? –