.datastr1: .asciiz "Bir string girin ve sonunda da \n girin"str2: .asciiz "Girilen string palindrom degil"str3: .asciiz "Girilen string palindrom dur"yeniSatir: .byte '\n'stringimiz: .byte 0:200girilen: .byte 0uzunluk: .wordadres: .wordadres1: .wordadres2: .word.text__strat: puts str1la adres,stringimizget girilenbeq girilen,yeniSatir,endwhile1while1: move m[adres],girilenadd adres,adres,1get girilenbne girilen,yeniSatir,while1endwhile1: la adres1,stringimizmove adres2,adressub adres2,adres2,1bge adres1,adres2,cikiswhile2: bne m[adres1],m[adres2],palindromDegilsub adres2,adres2,1blt adres1,adres2,while2puts str3b cikispalindromDegil: puts str2cikis: done
stringimiz: .byte 0:200 –>Boyutu 200 olan bir dizi belirtir ve sıfır ile doldurur. girilen: .byte 0 –>girilen isminde bir degisken ve degeri sıfırdır. la adres,stringimiz –>stringin başlangıç adresini adres değişkenine atar.Dizinin ismi diznin başlangıç adresi olduğu için.while1 ile girilen değerleri diziye ekler. move m[adres],girilen –>girilen ismindeki değişkenin değerini dizinin o anki konumuna ekler.mesela m[3]=’A’ gibi.endwhile1 ile de diziye string girilmemişse sonlandırır. while2 ile de dizinin elemanları kontrol edilir.Polindrom tersten okunuşu da ynı olan strignlerdir.Mesela 19155191 veya asdsa veya EthemehtE while2 ile asdsa daki ilk a ile son ondan sonraki s ile sondan 2 deki s karşılaştırılıyor.Eğer eşit olmayan bir harf varsa palindromdegil e branch eder ve palindrom değil yazar.Eğer uyuşursa str3 ile girilen string palindromdur yazar.
Hiç yorum yok:
Yorum Gönder