.text
.arm
.global _start
_start:
        b reset
        b loop
        b loop
        b loop
        b loop
        nop
        b loop
        b loop

/* ==============================
*  CÓDIGO
*  ==============================
*/
reset:	mov r1, #VECT1
	mov r2, #VECT2
	add r3, r2,#1
	mov r4, #SALIDA

@ lee la primera letra de VECT2 y la pasa a mayuscula 
        ldrb r5,[r2]
        cmp r5,#'a'
	subhs r5, r5, #('a'-'A')

@ bucle principal

otro:	ldrb r6, [r1],#1
	cmp r6, #0
	beq salir @ sale al finalizar barrido de VECT1
        mov r7,r6 @ copia en r7 el valor leido de VECT1 para no afectarlo con el pase a mayuscula

	cmp r6, #'a'  @ pasa a mayuscula el valor veido 
	subhs r6, r6, #('a'-'A') 

	cmp r5, r6    @ compara el valor leido con el primer elemento de VECT2
	strneb r7, [r4], #1 @ si no son iguales guarda el valor leido de VECT1 en SALIDA 
	bleq insertar @ si eran iguales llama a insertar 
        b otro 


/* ==================================================================================
*  función insertar 
*  copia desde el 2do elemento de VECT2 hasta su final en SALIDA 
*  ==================================================================================*/
insertar:
        mov r2,r3     @ guarda en r2 el puntero al segundo elemento de VECT2
insertarotra:
	ldrb r6, [r2],#1
	cmp r6, #0
        moveq pc,lr @ en esta linea retorno desde donde fué llamada la funcion (si r6 =  0)	
	strb r6, [r4], #1
	b insertarotra

@ fin del programa 
salir:  strb r6,[r4],#1 @ copio el null al final de la cadena
loop:   b loop

/* ==============================
*  CONSTANTES
*  ==============================
*/
VECT1:	.asciz "insertar en X la palabra x"
VECT2:	.asciz "xmundo"
SALIDA:	.space 50
	.balign 4
	.end
