prometheus800

MIPS lab5/лаб5 palindrom/палиндром v.2

Apr 13th, 2020
243
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.84 KB | None | 0 0
  1. .data
  2.  
  3. str: .space 50 #rezerviranje 50 bajti
  4. message1: .asciiz "1" #poraka1 vo slucaj da e palindrom
  5. message2: .asciiz "0" #poraka2 vo slucaj da ne e palindrom
  6.  
  7. .text
  8.  
  9. main:
  10.  
  11. jal readText #povik do vunkcija za citanje tekst
  12.  
  13. la $t1, str # pocetok na str
  14. la $t2, str # kraj na str
  15.  
  16. li $t0, 0
  17.  
  18. #f-ja za strlen
  19. while:
  20. lb $t3,($t2) # loadiraj go bajtot od krajot na str
  21. beqz $t3,endl # ako e ednakov na nula (null terminator) izlezi
  22. addu $t2, $t2,1 # odi na naredniot karakter
  23. jal while # povtori go procesot
  24. endl:
  25. subu $t2, $t2, 2 # odzemanje na dva za da se vrati nazad od \n i \0
  26.  
  27. jal symmetric #povik do symmetric f-jata
  28.  
  29. izlez:
  30. li $v0 ,10 #izlez od main
  31. syscall
  32.  
  33. symmetric:
  34.  
  35. bge $t1, $t2, palindrom # ako i dvete strani se isti, togaj odi na palindrom
  36.  
  37. lb $t3, ($t1) # loadiraj go bajtot vo $t3
  38. lb $t4, ($t2) # loadiraj go krajniot bajt vo $t4
  39.  
  40. bne $t3, $t4, nePalindrom # ako ne se isti, ne e palindrom
  41. addu $t1, $t1, 1 # inkrementiraj pocetok na str za proverka na nareden char
  42.  
  43. subu $t2, $t2, 1 # dekremntiranje na na krajot na str za proverka na nareden char
  44. jal symmetric # povtorni se vrati na symmetric
  45.  
  46. palindrom:
  47. la $a0, message1 # povik na message1 od .data
  48. li $v0, 4 # povik za citanje string
  49. syscall
  50. jal izlez # izlezi od main
  51.  
  52. nePalindrom:
  53. la $a0,message2 # povik na message2 od .data
  54. li $v0, 4 # call for reading string
  55. syscall
  56. jal izlez # izlezi od main
  57.  
  58.  
  59. readText:
  60. li $v0, 8 # kod za citanje string
  61. la $a0, str # adresa na str
  62. li $a1, 50 # golemina na str
  63. syscall
  64. jr $ra
Add Comment
Please, Sign In to add comment