Girilen Tamsayıları Tek Bağlı Listeye Yerleştirip Bubble Sort ile Sıralayan Assembly Programı
Projemizde MIPS assembly komutlarını kullanarak SPIM simülatörü (http://spimsimulator.sourceforge.net/) üzerinde çalışacak bir program yazmamız istenmektedir.
Programınız kullanıcı tarafından girilecek n adet sıfırdan büyük tamsayıyı alıp tek bağlı listeye (single linked list) yerleştirecek ve ardından bu liste üzerinde aşağıda kaba kodu verilen Bubble Sort algoritmasını çalıştıracaktır. Burada dikkat etmeniz gereken nokta kaba kodda verilen A dizisinin sizin uygulamanızda tek bağlı liste olması gerektiğidir.
Sıralama işleminden sonra listedeki değerlerin küçükten büyüğe doğru sıralanmış hali programın konsolunda çıktı olarak verilmelidir. Aşağıda örnek bir ekran çıktısı görülmektedir. Program çalıştırıldıktan sonra konsola sırasıyla 12, 8, 65, 4, 92, 41, 6 sayıları girilmiştir. Daha fazla sayı girilmeyeceğini bildirmek için de son olarak 0 sayısı girilmiştir. 0 sayısını tanıyan program sıralama işlemini gerçekleştirerek sayıları artan sırada alt alta konsola yazmıştır.
SPIM simülatörünün konsola girilen tamsayıyı alma, bellekte alan ayırma, konsola yazı yazma, programı sonlandırma gibi işlemler için kullandığı özel sistem çağrıları vardır. Bu çağrılar için önce $a0, $a1, $v0 gibi saklayıcıların içerikleri ayarlanıp ardından syscall fonksiyonu çağrılmaktadır. Aşağıda bu konuda yardım alabileceğiniz bir tablo bulunmaktadır.
Tamsayı okuma işlemi:
li $v0, 5 # syscall 5 == read_int
syscall

LinkedList_BubbleSort.asm








Programın çalıştırılması:

Hiç yorum yok:
Yorum Gönder