Ensamblador - Copiar cadenas de caracteres

 
Vista:

Copiar cadenas de caracteres

Publicado por Sergio (1 intervención) el 22/03/2020 20:36:07
Hola, tengo un problema a la hora de copiar una cadena de caracteres, a otra. El ejercicio planteado es el siguiente:
A partir de la posición de memoria A se tiene almacenada una cadena de caracteres seguida de su terminador de cadena nulo. Escriba un programa en MIPS que copie esa cadena a partir de la posición de
memoria B.
A traves de un código planteado en los apuntes de la asignatura, he escrito el siguiente, pero no realiza lo que necesito y no se cual es el error.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
.data
A: 	.asciiz "Hola Mundo DOS"
B:	.space 50
.text
	la $a0, A
	la $a1, B
strcpy:
	addi 	$sp, $sp, -4 	# reserva un lugar en la pila
	sw 	$s0, 0($sp) 	# guarda $s0
	add 	$s0, $zero, $zero 	# i = 0
L1: 	add 	$t1, $s0, $a1 	# dirección de y[i] en $t1
	lbu 	$t2, 0($t1) 	# $t2 = y[i]
	add 	$t3, $s0, $a0 	# dirección de x[i] en $t3
	sb 	$t2, 0($t3) 	# x[i] = y[i]
	beq 	$t2, $zero, L2 	# Sale del bucle si y[i] == 0
	addi 	$s0, $s0, 1 	# i = i + 1
	j 	L1 		# Siguiente iteración
L2: 	lw 	$s0, 0($sp) 	# recupera valor de $s0,
	addi 	$sp, $sp, 4 	# libera el lugar de la pila,
	jr 	$ra 		# y retorna
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder