Pomoc

Krótki opis maszyn RAM

˅

Maszyna RAM – jest modelem abstrakcyjnej maszyny ze swobodnym dostępem do pamięci. Programem maszyny RAM jest ciąg poleceń, które mogą być poprzedzone etykietą. W tym emulatorze mamy dostępne następujące polecenia:
Kod operacjiOpis
LOADWpisuje do rejestru 0 wartość podaną w adresie.
STOREWpisuje wartość z rejestru 0 do rejestru podanego w adresie
ADDDodaje do rejestru 0 wartość podaną w adresie
SUBOdejmuje od rejestru 0 wartość podaną w adresie
MULTMnoży rejestr 0 przez wartość podaną w adresie
DIVDzieli rejestr 0 przez wartość podaną w adresie
READWczytuje kolejną wartość z taśmy wejściowej do rejestru o podanym adresie
WRITEZapisuje kolejno na taśmie wyjściowej wartość podaną w adresie
JUMPSkacze bezwarunkowo do miejsca w programie wskazanego etykietą
JGTZSkacze do miejsca w programie wskazanego etykietą jeżeli w rejestrze jest wartość większa od zera
JZEROSkacze do miejsca w programie wskazanego etykietą jeżeli w rejestrze 0 jest wartość równa 0
HALTKończy program
W ogólnym przypadku komenda składa się z kodu operacji i adresu który może być etykietą czyli nazwą symboliczną lub operandem, nalężącym do trzech typów:
= i - wartością tego operandu jest liczba całkowita i
i - zawartość rejestru o numerze i (i powinno być nieujemne)
*i - wartością operandu jest zawartość rejestru, którego numerem jest wartość rejestru i
Wyjątekiem jest komenda HALT, która nie posiada adresu.

Wpisywanie poleceń

˅

Polecenia możemy wpisywać w tabeli po lewej stronie. W kolumnie etykieta możemy wpisać dowolny ciąg znaków, ważne aby nie zawierał w sobie średnika i przecinka. W kolumnie Komenda mamy do wyboru listę komend dostępnych w emulatorze. W kolumnie Adres po lewej stronie możemy wybrać znak operandu po prawej natomiast możemy wpisać wartość operandu. Jeżeli wpisujemy etykietę znak zostawiamy pusty, natomiast w przypadku polecenia HALT oba pola zostają puste. W komentarzu możemy wpisać dowolny ciąg znaków bez przecinka i średnika.
PrzyciskDodaje wpisaną przez nas komendę. W przypadku błędnego zapisu w oknie status wyświetli się odpowiedni komunikat. Tym przyciskiem możemy również dodać polecenie w środku listy komend. Po kliknięciu tego przycisku obok komendy powyżej pojawią się pola do których możemy wpisać nowe polecenie i zatwierdzić je przyciskiem
PrzyciskUsuwa komendę przy której się znajduje
Po naciśnięciu przycisku możemy edytować komendę znajdującą się obok.

Taśma wejściowa

˅

Elementy taśmy wejściowej będą wczytywane po kolei zaczynając od pierwszego dodanego elementu. Liczby podane jako wejście muszą być typu całkowitego. Jeżeli element taśmy wejściowej będzie pusty zostanie wczytany jako zero.

Uruchamianie programu

˅

Przycisk wykonuje program od początku do końca. Jeżeli program napotka jakiś błąd, wyświetli odpowiedni komunikat.
Przycisk wykonuje następną komendę.
Przycisk zaczyna program od nowa.

Licznik rozkazów

˅

Licznik rozkazów wskazuje nam polecenie, które ma być wykonane jako następna. Następne polecenie jest również zaznaczone na zielono.

Status

˅

Okno status wyświetla informacje związane z wykonywaniem się programu jak i z błędami podczas wpisywania komend w tabeli oraz podczas wczytywania koemnd z tekstu.

Taśma wyjściowa

˅

Na taśmie wyjściowej pojawią sie kolejne wartości uzyskane przez polecenie WRITE.

Zawartość rejestrów

˅

Wyświetla nam wartości które aktualnie znajdują się w rejestrach.

Załaduj/Pobierz kod

˅

Przycisk wyświetla w oknie kod naszego programu w postaci ciągu znaków. Każdy element polecenia zostanie rozdzielony przecinkami, każde polecenie zostanie rozdzielone średnikiem. Kod wyświetlony w oknie możemy skopiować i wkleić do notatnika, co pozwoli nam go ponownie wczytać przy pomocy opcji załaduj kod.
Przycisk pobiera kod znajdujacy sie w oknie i wpisuje go do pamieci. Format wpisanego kodu musi być taki sam jak w przypadku kodu, który został wyświetlony, czyli poszczególne elementy polecenia muszą być rozdzielone przecinkami, natomiast polecenia zostaną oddzielone średnikiem. Kod może być dowolnie rozdzielony znakami tak jak odstęp czy tabulacja.

Przykładowe programy

˅

Przycisk pozwala nam załadować program wybrany z listy do pamieci naszej maszyny.

Nr Etykieta Komenda Adres Komentarz Operacje
Taśma wejściowa




Status:

Taśma wyjściowa

Zawartość rejestrów

Załaduj/Pobierz kod
Przykładowe programy