Advertisement
juaniisuar

Untitled

May 24th, 2015
484
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.22 KB | None | 0 0
  1. .data
  2. dir: .asciiz "Introducir cadena: "
  3. si: .asciiz "Es palindromo
  4. "
  5. no: .asciiz "No es palindromo
  6. "
  7. string: .space 100
  8.  
  9. .text
  10. main: li $v0, 4 # código de imprimir cadena
  11. la $a0, dir # dirección de la cadena
  12. syscall # Llamada al sistema
  13. li $v0, 8 # código de leer str
  14. la $a0, string($0)
  15. li $a1, 100
  16. syscall # Llamada al sistema
  17. and $t0, $t0, $0 #t0=0
  18. while: lb $t1, string($t0) #carga en t1 el caracter
  19. beq $t1, $0, end #busca el \0
  20. addi $t0, $t0, 1 #t0++
  21. j while
  22. end: addi $t0, $t0, -1
  23.  
  24. or $s0, $t0, $0 #guardamos strlen en s0
  25. add $t6, $0, $0 #inicializar contador
  26. add $t7, $0, $s0
  27. addi $t7, $t7, -1 #nos paramos en el ultimo caracter
  28.  
  29. palin: ble $t7, $t6, true #el primer indice alcanzo al segundo? true
  30. lb $t0, string($t6) #cargar los char
  31. lb $t1, string($t7)
  32. bne $t0, $t1, false #son distintos? falso
  33. addi $t7, $t7, -1 #mover contadores
  34. addi $t6, $t6, 1
  35. j palin
  36.  
  37. false: la $a0, no
  38. j fin
  39.  
  40. true: la $a0, si
  41.  
  42. fin: li $v0, 4 #printstring
  43. syscall
  44. j main
  45. li $v0, 10
  46. syscall
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement