Ich versuche, den geraden Inhalt eines Arrays in das andere Array zu kopieren. Mein Code läuft ohne Probleme, aber die Werte, die aus dem Array gedruckt werden, sind 000000 und nicht die Werte des Arrays.Array zu Array MIPS
Mein Ziel ist es, die geraden Zahlen von Array0 zu Array1 zu kopieren und sie auf dem Bildschirm zu drucken.
Mein Code:
.data
array0: .word 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
length: .word 10
array1: .space 20
nl: .asciiz ""
label: .asciiz "Values: "
.text
.globl main
main:
lw $t2, length
move $t0, $zero
move $t1, $zero
move $t2, $zero
move $t3, $zero
la $a0, label
li $v0, 4
syscall
start:
lw $t5, array0($t0)
andi $t4, $t5, 1
beq $t4, 0, even
addi $t1, $t1, 1
addi, $t0, $t0, 4
blt $t1, $t2, start
j end
even:
sw $t5, array1($t3)
addi $t1, $t1, 1
addi $t0, $t0, 4
addi $t3, $t3, 4
blt $t1, $t2, start
end:
lw $a0, array1($t6)
li $v0, 1
syscall
la $a0, nl
la $v0, 4
syscall
addi $t6, $t6, 4
bne $t6, 20, end
li $v0, 10
syscall
.end main
Sie haben 'length' nach' $ t2' geladen und dann '$ t2' durch' $ zero' überschrieben. Bist du sicher, dass du das willst? – MikeCAT