Why does not the code below work?
Error in strcpy.asm line 9: Runtime exception at 0x00400014: fetch address not aligned on word boundary 0x00000001
.text
.globl main
main:
lw $a0, destino # Carrega o ponteiro destino para a0
lw $a1, origem # Carrega o ponteiro origem para a1
li $v0, 0 # Número de ítens copiados = 0
loop:
lw $s0, 0($a1) # s0 = origem[0]
beq $s0, $zero, end # Chegou no final da string de origem (origem[0] = 0)
sw $s0, ($a0) # destino[0] = origem[0]
sll $a0, $a0, 2 # destino++
sll $a1, $a1, 2 # origem++
addi $v0, $v0, 1 # copiados++
j loop
end:
.data
origem: .word 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x00
destino: .word 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00