Pamäť procesora pozostáva z pamäťových jednotiek. Tieto pamäťové jednotky nazývame registre. Činnosť procesora pozostáva z vykonávania inštrukcií nad týmito registrami. Aby sme pochopili, ako pracuje počítač a aby sme tiež videli, ako možno dosiahnuť zložité spracovanie informácií pomocou postupnosti veľmi jednoduchých operácií, ukážeme si prácu počítača pomocou nasledovných zjednodušených inštrukcií.
Detail č. 1
Prvým typom inštrukcie je, že môžeme registru nastaviť akúkoľvek hodnotu. Napríklad napíšeme inštrukciu, že register č.7 má mať hodnotu 13.
Detail č. 2
Počítač je spojený so svojím okolím. Vstupné údaje (čísla) čakajú v rade a počítač si môže vždy prečítať prvé číslo v rade a zapamätať ho v nejakom registri. Druhým typom inštrukcie je teda načítanie zo vstupu.
Detail č. 3
Počítač je spojený so svojím okolím aj druhým spôsobom. Na výstup môže postupne zapisovať výsledky, teda vlastne hodnoty zvolených registrov. Tretím typom inštrukcie je teda výpis na výstup.
Detail č. 4
Potrebujeme tiež možnosť testovať a na základe výsledku testu určiť ďalší postup. Medzi základné inštukcie môžeme teda doplniť porovnanie hodnôt. Napríklad porovnať dva registre, alebo porovnať register s konkrétnou hodnotou. Ak je výsledok testu pozitívny, pokračujeme zvolenou inštrukciou. Ak je negatívny, pokračujeme nasledujúcou inštrukciou, akoby sa nič nestalo (akoby tam riadok s testom ani vôbec nebol).
Štvrtým typom inštrukcie je teda testovanie.
Detail č. 5
Posledným typom inštrukcie je inštrukcia sčítania dvoch registrov. Počítač spočíta obsahy nejakých dvoch registrov a výsledok uloží do nejakého registra (iného, alebo jedného z tých dvoch).
Vysvetlenie, ako funguje sčítanie registrov na hardvérovej úrovni, nájdete v článku Mikroprocesor sa skladá z maličkých tranzistorov.
Jednoduchý program
Uvažujme teraz nasledovnú jednoduchú postupnosť inštrukcií:
1. Načítaj číslo zo vstupu do registra č.1
2. Načítaj ďašie číslo zo vstupu do registra č.2
3. Nastav register č.3 na hodnotu -1
4. Nastav register č.4 na hodnotu 0
5. Ak register č.1 = 0 tak pokračuj v riadku 9
6. Nastav register č.1 na hodnotu (register č.1 + register č.3)
7. Nastav register č.4 na hodnotu (register č.4 + register č.2)
8. Pokračuj v riadku 5 *
9. Vypíš na výstup hodnotu registra č.4
10. Koniec inštrukcií
* Pre puntičkárov – inštrukcia sa dá zapísať ako vždy pravdivé testovanie
Milá čitateľka, milý čitateľ, vyskúšajte si najprv na papieri tento postup s nejakými konkrétnymi čislami na vstupe. Prípadne si vyskúšajte náš kvíz s naším ukážkovým programom. *
Päť typov inštrukcií sa môžu zdať sa ako príliš jednoduché operácie na to, aby mohli mať nejaký väčší význam, avšak vďaka kvízu ste už objavili ich obrovský potenciál. Pomocou týchto základných inštrukcií môžeme vytvoriť výsledok, ktorý je výrazne komplexnejší. Vlastne môžeme vytvoriť akýkoľvek matematický výpočet.
Program vypočíta súčin dvoch čísel na vstupe. Podobným spôsobom vieme vypočítať aj mocninu. Odčítanie je zasa pričítanie záporného čísla a delenie je násobením prevráteného čísla.
Ak vás tento článok zaujal, odporúčame siahnuť po knihe Sedem divov informatiky od Juraja Hromkoviča. Knihu nájdete v našom zozname kníh o informatike.