Попытка получить доступ и перебрать каждое число в «источнике», пока я не нажму 0, а затем сохранить эти числа в тот же индекс «назначения».
Пробовал: много чего, не смог правильно получить доступ к данным .word. непонятно почему..
.data
source: .word 3, 1, 4, 1, 5, 9, 0
dest: .word 0, 0, 0, 0, 0, 0, 0
countmsg: .asciiz " values copied. "
.text
main: add $s0, $0, $ra # Save our return address
la $t0, source
la $t1, dest
loop: lw $t3, ($t0) # read next word from source
beq $t3, $zero, loopend # loopend if word is 0
addi $t4, $t4,1 # increment count words copied
sw $t3, 0($t1) # write to destination
addi $t0, $t0,1 # advance pointer to next source
addi $t1, $t1,1 # advance pointer to next dest
j loop
loopend:
move $a0, $v0 # We want to print the count
li $v0, 1
syscall # Print it
la $a0, countmsg # We want to print the count msg
li $v0, 4
syscall # Print it
li $a0, 0x0A # We want to print '\n'
li $v0, 11
syscall # Print it
jr $s0 # Return from main. $ra in $s0
не выровнено по границе слова, не знаю, как выровнять итерацию