Notatka nr 1

advertisement
Maszyna RAM
1. Schemat
TAŚMA WEJŚCIOWA
PROCESOR
PROGRAM
0:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10
:
11
:
READ
READ
LOAD
STORE
ET1: LOAD
JZERO
SUB
STORE
LOAD
MULT
STORE
JUMP
WRITE
HALT
1
2
=1
3
2
WYN
1
2
3
1
3
ET1
3
TAŚMA WYJŚCIOWA
Uwagi:
 Pamięć składa się z nieskończonej liczby komórek pamięci. Komórki ponumerowane są kolejnymi liczbami
naturalnymi.
 Komórka o numerze (inaczej: adresie) 0 nazywana jest akumulatorem. Spełnia ona specjalną rolę (patrz:
rozkazy maszyny)
 Każda komórka może pamiętać dowolną (ale w każdym momencie dokładnie jedną) liczbę naturalną.
 Taśmy wejściowa i wyjściowa są urządzeniami sekwencyjnymi i można na nich zapisywać dowolne ciągi
liczb naturalnych. Na taśmie wejściowej zapisujemy dane, które będą wczytywane przez program; na
taśmie wyjściowej liczby zapisywane są przez program.
2. Rozkazy
2.1 Format rozkazów:
<nazwa rozkazu> <argument>
2.2 Lista rozkazów maszyny RAM:
LOAD
STORE
przesłanie do akumulatora
przesłanie do z akumulatora do komórki
ADD
SUB
MULT
DIV
dodawanie
odejmowanie
mnożenie
dzielenie
JUMP
JZERO
JGTZ
skok bezwarunkowy
skok, jeśli w akumulatorze znajduje się zero
skok, jeśli w akumulatorze znajduje się liczba dodatnia
READ
WRITE
czytanie kolejnej liczby z taśmy wejściowej
zapisywanie na taśmie wynikowej
HALT
zatrzymanie programu
2.3 Argumenty mogą mieć następującą postać:
Postać
Znaczenie
<liczba>
adres komórki
=<liczba>
stała liczbowa
^<liczba>
adres pośredni
<etykieta>
etykieta rozkazu
Etykieta jest dowolnym ciągiem znaków (liter lub cyfr) i występuje jako argument w rozkazach skoku.
Instrukcja HALT nie posiada argumentu.
2.4 Przykłady:
STORE
1
Przesłanie zawartości akumulatora do komórki o adresie 1
LOAD
5
Przesłanie zawartości komórki o adresie 5 w akumulatorze
LOAD
=5
Zapamiętanie liczby 5 w akumulatorze
LOAD
^5
Przesłanie do akumulatora liczby znajdującej się w komórce, której
adres znajduje się w komórce 5
JZERO
ET
Jeśli w akumulatorze znajduje się zero, to jako następny zostanie
wykonany rozkaz, przed którym znajduje się etykieta ET
MULT
1
Pomnożenie liczby znajdującej się w akumulatorze przez liczbę
znajdującą się w komórce o adresie 1 i zapamiętanie iloczynu w
akumulatorze
2.5 Uwagi:
1.
Jednym z argumentów rozkazów arytmetycznych (ADD, SUB, MULT, DIV) jest zawsze akumulator.
Wynik rozkazu arytmetycznego umieszczany jest w akumulatorze.
2.
Nie każda postać argumentu może występować z każdym rozkazem. Przykładowo, nie mają sensu
rozkazy: STORE =2 , ADD ET1,
READ =3 czy JUMP 17
Rozkaz READ czyta liczbę znajdującą się aktualnie pod głowicą czytającą oraz przesuwa tę głowicę
nad następną liczbę.
3.
Download