1
這是迄今爲止我已轉換的C代碼。它給了我一些錯誤,我已經包含在下面的代碼中。我不明白哪個部分是錯誤的在這個C來碾壓轉換?將C代碼轉換爲mips會給出錯誤
char ch[10];
int i;
for (i = 0; i != 10; i++)
ch[i] = ch[i] – 32
.data
.text
li $v0 4
syscall
#$s1 = i, $s0 base address of ch
addi $s1, $0, 0 #i =0
addi $t0, $0, 10 #t0 = 10
loop: beq $t0, $s1, end
add $t1, $s1, $s0
lw $t2, 0($t1)
addi $t2, $t2, -32
sw $t2, 0($t1)
addi $s1, $s1, 1
j loop
end:
我的輸出:
Runtime exception at 0x00400018: address out of range 0x00000000
自從MIPS對我來說已經有一段時間了,但它看起來像一個空的寄存器。更重要的是,當你在MIPS中編碼時,你應該逐行評論,否則調試將是一場噩夢。 – Forklift
你沒有初始化'$ s0'。此外,還不清楚'syscall'應該做什麼,因爲系統調用4期望'$ a0'中的字符串地址。 – Michael