• Miércoles 20 de Noviembre de 2024, 18:23

Autor Tema:  imprimir el tamaño de una cadena  (Leído 3632 veces)

myste89

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
imprimir el tamaño de una cadena
« en: Martes 30 de Marzo de 2010, 22:57 »
0
Hola, soy nueva en el foro... y también soy bastante novata con la programación en ensamblador.... os cuento: tengo que hacer un programa que lea por teclado una cadena y que imprima por pantalla el tamaño de la cadena. Luego tiene que hacer otras cosas, pero empiezo por el principio...

no sé como haceis eso de meter el código en un cuadro asi que lo pego directamente:

Código: Text
  1.  
  2. .data
  3. longitud: .asciiz "La longitud de la cadena introducida es "
  4. caracteres: .asciiz "Los caracteres de la cadena son: n"
  5. cadena: .aciiz "Introduzca la cadena deseada:"
  6. memoria: .byte 32
  7.  
  8. .text
  9.  
  10. .globl main
  11.  
  12. main:
  13.     li $v0, 4
  14.     la $a0, cadena  #imprime la cadena 'cadena'
  15.     syscall
  16.  
  17.     move $a0, $v0
  18.     la $a1, memoria #reserva 32 bytes de espacio para almacenar cadenas
  19.     jal longitud_cadena
  20.  
  21.     move $a0, $t2   #guarda en $a0 la variable 'contadorLetras'
  22.     li $v0, 1
  23.     syscall
  24.  
  25.     li $v0 , 10     # Finalizar programa
  26.     syscall
  27.  
  28. longitud_cadena:
  29.     li $t1, 0   #int i = 0
  30.     li $t2, 0   #contadorLetras = 0
  31.  
  32.     bucle:
  33.         lw $t0, ($a0)   # metemos en $t0 el contenido de la primera posicion de la cadena
  34.         beq  $t0, 0, finbucle   #si la casilla está vacia salimos del bucle
  35.    
  36.         addi $t2, 1 #contadorLetras ++
  37.         addi $t1, 1 #i++
  38.         addi $a0, 1 #incrementamos el puntero
  39.        
  40.         b bucle
  41.  
  42.     finbucle:
  43.         jr $ra
  44.  
  45.  

Me podeis echar una mano?? Gracias
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: imprimir el tamaño de una cadena
« Respuesta #1 en: Miércoles 31 de Marzo de 2010, 16:05 »
0
Es un codigo para procesadores MIPS, no entiendo muy bien la parte del codigo para el strlen que tenes:

Si la cadena esta en $a0 no es mas simple hacerlo asi (en $t2 queda el resultado):

Código: Text
  1.  
  2. lui $t2, 0
  3. nbucle:
  4. lb $t0, 0($a0)
  5. beq $t0,0,longitud
  6. addi $t2,$t2,1
  7. addi $a0,$a0,1
  8. j nbucle
  9.  

Con el PCSpim se puede ver un bucle infinito ...

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.