prometheus800

MIPS lab5/лаб5 palindrom/palindrom (nedovrsena)

Apr 13th, 2020
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.20 KB | None | 0 0
  1. .data
  2. str: .asciiz "racecar"
  3.  
  4. .text
  5.  
  6. main:
  7.  
  8. # jal readText
  9.  
  10. la $a0, str
  11. jal symmetry
  12.  
  13. la $a0, str
  14. move $a0, $v0
  15. li $v0, 1
  16. syscall
  17.  
  18. #izlez od main
  19. li $v0, 10
  20. syscall
  21.  
  22. #funkcija za vnesuvanje text
  23. #readText:
  24. #li $v0, 8
  25. #la $a0, str
  26. #li $a1, 50
  27. #syscall
  28. #jr $ra
  29.  
  30. #f-ja za dolzina na vneseniot text
  31. strlen:
  32.  
  33. li $v0, 0
  34. strlen_loop:
  35. lb $t0, 0($a0)
  36. beq $t0, $0, strlen_exit
  37.  
  38. addi $a0, $a0, 1
  39. addi $v0, $v0, 1
  40. j strlen_loop
  41.  
  42. strlen_exit:
  43. jr $ra
  44.  
  45. symmetry:
  46.  
  47.  
  48. sub $sp, $sp, 8
  49. sw $ra 0($sp)
  50. sw $a0 4($sp)
  51.  
  52. jal strlen
  53. move $t0, $v0
  54.  
  55. lw $a0 4($sp)
  56. move $t1, $a0
  57.  
  58. li $t2, 1
  59. li $v0, 1
  60. div $t3, $t0, 2
  61. addi $t3, $t3, 1
  62.  
  63. symmetryLoop:
  64. bge $t2, $t3 symmetryExit
  65. lb $t4, 0($a0)
  66.  
  67. sub $t5, $t0, $t2
  68. add $t6, $t5, $t1
  69. lb $t7, 0($t6)
  70.  
  71. beq $t4, $t7, symmetryContinue
  72. li $v0, 0
  73. j symmetryExit
  74.  
  75. symmetryContinue:
  76. addi $a0, $a0, 1
  77. addi $t2, $t2, 1
  78. j symmetryLoop
  79.  
  80. symmetryExit:
  81. lw $ra 0($sp)
  82. addi $sp, $sp, 8
  83. jr $ra
Add Comment
Please, Sign In to add comment