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

/* ==============================
*  TEST CODE
*  igualar las palabra de una cadena a la mas larga
*  ==============================
*/
reset:
        ldr r1,=CADENA
        ldr r2,=SALIDA
 
        mov r5,#0 @maxima longitud
	mov r4,#0 @contador longitud
otro:   ldrb r3,[r1],#1
        cmp r3,#0
        beq salir1
        cmp r3,#' ' 
        beq salir1
        add r4,#1
        b otro
salir1: cmp r4,r5
	movhi r5,r4
 	mov r4,#0
	cmp r3,#0
	bne otro

        ldr r1,=CADENA
	ldr r2,=SALIDA
	
otro2:  ldrb r3,[r1],#1
    	cmp r3,#0
        beq salir2
        cmp r3,#' ' 
        beq salir2
	strb r3,[r2],#1
	add r4,#1
	b otro2
salir2: cmp r4,#0 @si es otro espacio seguido no completo con '_'
	beq seguir
otro3:  cmp r4,r5
	beq seguir
	mov r6,#'_'
	strb r6,[r2],#1
	add r4,#1
	b otro3
seguir: strb r3,[r2],#1
	mov r4,#0
	cmp r3,#0
	bne otro2


loop:   b loop
        .ltorg

/* ==============================
*  CONTANTES
*  ==============================
*/
CADENA:  .asciz "igualar el largo de las palabras"
SALIDA:  .space(200)

        .balign 4
        .end

