Zrobiłem zadanie polegające na sortowaniu rosnącym 4 liczb, może się komuś przyda. Sprawdzone w programie "Maszyna RAM".
Oto kod programu wraz z komentarzami (znaki #):
read 1 #Wczytywanie danych z taśmy WE read 2 read 3 read 4 load =3 #Ustaw licznik 1 store 5 warunek_1: load 5 #Sprawdzenie warunku nr 1 jzero pisz_wynik #Koniec sortowania, wypisz posortowany ciąg licznik_2: load =3 #Ustaw licznik 2 store 6 warunek_2: load 6 #Sprawdzenie warunku nr 2 jzero zmniejsz_licznik_1 #Pierwsza liczba ciągu na swoim miejscu jgtz porównaj zmniejsz_licznik_1: load 5 #Zmniejszenie o 1 wartości licznika nr 1 sub =1 store 5 jump warunek_1 porównaj: load 6 #Porównanie wartości dwóch sąsiednich komórek pamięci add =1 store 7 load *6 sub *7 jgtz zamień #Trzeba zamienić porównywane dwie wartości miejscami jump zmniejsz_licznik_2 zamień: load *6 #Zamiana miejscami wartości w porównywanych komórkach pam. store 8 #Komórka pomocnicza load *7 store *6 load 8 store *7 zmniejsz_licznik_2: load 6 #Zmniejszenie o 1 wartości licznika nr 2 sub =1 store 6 jump warunek_2 pisz_wynik: write 1 #Wypisanie posortowanych danych na taśmę WY write 2 write 3 write 4 halt
W programie "Maszyna RAM" zamiast symbolu * stosowany jest ^ .
|