Pobierz Notatki do wykładu - Notatki - Informatyka - Część 1 i więcej Notatki w PDF z Informatyka tylko na Docsity! Notatki do wykładu Wstęp do programowania (2) 1 Maszyny RAM Maszyna RAM składa się z procesora, pamięci oraz taśmy wejściowej i taśmy wyjściowej. Dzi- ałanie RAM polega na wykonywaniu rozkazów programu, który musi być napisany w znanym maszynie języku - w naszym przypadku - kodzie RAM. Schemat maszyny RAM przedstawia Rysunek 1. Acc r(1) r(2) r(3) ... 0 1 2 3 . . . PROCESOR P R O G R A M Licznik rozkazów Taśma wejściowa Taśma wyjściowa Klatki P A M I Ę Ć Rejestry Rysunek 1: Schemat maszyny RAM. 1.1 Elementy maszyny RAM Procesor - rozpoznaje i wykonuje instrukcje programu zwane rozkazami; określa też, który rozkaz ma być wykonany jako następny. Licznik rozkazów LR - zawiera numer rozkazu, który ma być wykonany jako kolejny. 1 docsity.com Pamięć - ciąg rejestrów ponumerowanych kolejnymi liczbami naturalnymi, liczba numerująca rejestr nazywa się jego adresem; każdy rejestr może przechowywać dowolną liczbę całkowitą. Akumulator Acc - rejestr pamięci o adresie 0, przystosowany do wykonywania operacji aryt- metycznych, pośredniczy także w przesyłaniu danych pomiędzy rejestrami. Taśma wejściowa - podzielona na klatki, służy do przechowywania danych dla programu; wyposażona jest w głowicę czytającą, która wskazuje bieżącą klatkę; po wczytaniu danej z klatki, głowica automatycznie przesuwa się do następnej klatki. Taśma wyjściowa - podzielona na klatki, służy do zapisywania wyników działania programu; wyposażona jest w głowicę piszącą; wyprowadzany wynik jest pisany w klatce, w której znajduje się głowica, po czym automatycznie przesuwa się ona dalej. 1.2 Program w kodzie RAM Program jest to ciąg ponumerowanych rozkazów. Każdy rozkaz ma postać: <Etykieta> <Kod rozkazu> <Argument> Rozkazy można podzielić na grupy: 1. rozkazy przesyłania: LOAD (pobranie do akumulatora), STORE (przesłanie z akumulatora), 2. operacje arytmetyczne: ADD (dodawanie), SUB (odejmowanie), MULT (mnożenie), DIV (dzielenie całkowite), 3. rozkazy wejścia/wyjścia: READ (czytanie danej), WRITE (pisanie wyniku), 4. rozkazy skoków: JUMP (skok bezwarunkowy), JZERO (skok jeśli 0), JGTZ (skok jeśli większe niż 0), 5. rozkaz zatrzymania: HALT (zatrzymanie programu) Przyjmijmy oznaczenia: 1. i, j, n – liczba całkowita, 2. a – argument 3. e – etykieta (nazwa, ciąg liter lub cyfr), 4. ri – rejestr o adresie i, (jego zawartość, też będziemy używać ri lub r(i). 2 docsity.com