Tôi đang cố gắng tạo một mảng trong MIPS Assembly, và sau đó thêm tất cả các phần tử lại với nhau. Tuy nhiên, khi tôi cố gắng để lắp ráp sau, nó nóiTạo (và truy cập) một mảng trong MIPS
Lỗi trong dòng read_array 1 vị trí 7: ".word" chỉ có thể không xuất hiện trong đoạn văn bản Lắp ráp: hoạt động hoàn thành với lỗi.
Dưới đây là lắp ráp của tôi:
list: .word 3, 2, 1, 0, 1, 2
li $t0, 0x00000000 #initialize a loop counter to $t0
li $t4, 0x00000005 #last index of array
li $t3, 0x00000000 #this will hold our final sum
la $t1, list #the address of list[0] is in $t1
loop: addi $t0, $t0, 0x00000001 #index++
add $t5, $t0, $t0 #array index X2
add $t5, $t0, $t0 #array index X2 again
add $t6, $t5, $t1 #4x array index in $t6
lw $t2, 0($t6) #load list[index] into $t2
add $t3, $t3, $t2 #$t3 = $t3 + $t2
beq $t0, $t4, end
j loop
end:
Cảm ơn!
Tôi biết một số lỗi logic trong mã này nhưng tôi đã trả lời câu hỏi của mình. Cảm ơn! – hodgesmr
Điều đó thực sự kỳ lạ, IDK nếu giới hạn này là cố ý để bảo vệ người mới bắt đầu từ trộn dữ liệu với mã và có chương trình của họ sụp đổ khi thực hiện rơi vào dữ liệu của họ, hoặc những gì. Trong hầu hết các trình lắp ráp, bạn có thể sử dụng '.byte' /' .word' hoặc 'db' /' dd' ở bất kỳ đâu để phát ra bất kỳ byte nào bạn muốn ở bất kỳ vị trí nào. (ví dụ: để phát ra mã hóa không mặc định của hướng dẫn vì một lý do nào đó.) –