Ich versuche, ein Array in MIPS-Assembly zu erstellen, und fügen Sie dann alle Elemente zusammen. Aber wenn ich versuche, die folgenden zu montieren, heißt esErstellen (und Zugriff) eines Arrays in MIPS
Fehler in read_array Zeile 1, Position 7: „.WORD“ Richtlinie nicht in Textsegment auftreten können zusammenbauen: Betrieb mit Fehlern abgeschlossen.
Hier ist meine Montage:
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:
Dank!
Ich bin bewusst, einige logische Fehler in diesem Code, aber ich habe meine Frage beantwortet. Vielen Dank! – hodgesmr
Das ist wirklich komisch, IDK, wenn diese Einschränkung beabsichtigt, Anfänger davor zu schützen, Daten mit Code zu mischen und ihr Programm zum Absturz zu bringen, wenn die Ausführung in ihre Daten fällt oder was? In den meisten Assembler können Sie '.byte' /' .word' oder 'db' /' dd' irgendwo verwenden, um beliebige Bytes an jeder Position zu senden. (z. B. um aus einem bestimmten Grund eine nicht standardmäßige Codierung eines Befehls auszugeben.) –