Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .data
- str: .space 50 #rezerviranje 50 bajti
- message1: .asciiz "1" #poraka1 vo slucaj da e palindrom
- message2: .asciiz "0" #poraka2 vo slucaj da ne e palindrom
- .text
- main:
- jal readText #povik do vunkcija za citanje tekst
- la $t1, str # pocetok na str
- la $t2, str # kraj na str
- li $t0, 0
- #f-ja za strlen
- while:
- lb $t3,($t2) # loadiraj go bajtot od krajot na str
- beqz $t3,endl # ako e ednakov na nula (null terminator) izlezi
- addu $t2, $t2,1 # odi na naredniot karakter
- jal while # povtori go procesot
- endl:
- subu $t2, $t2, 2 # odzemanje na dva za da se vrati nazad od \n i \0
- jal symmetric #povik do symmetric f-jata
- izlez:
- li $v0 ,10 #izlez od main
- syscall
- symmetric:
- bge $t1, $t2, palindrom # ako i dvete strani se isti, togaj odi na palindrom
- lb $t3, ($t1) # loadiraj go bajtot vo $t3
- lb $t4, ($t2) # loadiraj go krajniot bajt vo $t4
- bne $t3, $t4, nePalindrom # ako ne se isti, ne e palindrom
- addu $t1, $t1, 1 # inkrementiraj pocetok na str za proverka na nareden char
- subu $t2, $t2, 1 # dekremntiranje na na krajot na str za proverka na nareden char
- jal symmetric # povtorni se vrati na symmetric
- palindrom:
- la $a0, message1 # povik na message1 od .data
- li $v0, 4 # povik za citanje string
- syscall
- jal izlez # izlezi od main
- nePalindrom:
- la $a0,message2 # povik na message2 od .data
- li $v0, 4 # call for reading string
- syscall
- jal izlez # izlezi od main
- readText:
- li $v0, 8 # kod za citanje string
- la $a0, str # adresa na str
- li $a1, 50 # golemina na str
- syscall
- jr $ra
Add Comment
Please, Sign In to add comment