Vědět víc - vzdělávací portál pro zvídavé


Jak to vidí počítač - opakování

Slide

V jedné z prvních lekcí jsme si dívali na program očima počítače. Pro další pochopení si některé věci zopakujeme a doplníme. 

Počítač (či přesněji procesor) umí pracovat pouze s čísly. Vše, co zpracovává, potřebuje dostávat ve formě čísel. 

To platí jak pro data (tam si to ještě umíme představit), tak pro instrukce (tam je to představa náročnější, ale stále ještě ne příliš složitá). 

Instrukce říkají procesoru, co má dělat. 

Instrukce, které procesor zpracovává, jsou velmi jednoduché. Zahrnují například: 

  • Přesuny dat - obvykle jednoho čísla mezi pamětí a registrem procesoru – registr procesoru je jedna paměťová buňka uvnitř procesoru, která pojme jedno číslo; v závislosti na architektuře procesoru jsou registry veliké 8, 16, 32 či 64 bitů (výjimečně se objevují i větší) 
  • Elementární výpočty - jednoduché početní operace, například sčítání a odečítání, násobení a dělení, bitové operace (např. logické operace s bity, posuny) 
  • Podmínky - obvykle se testují tzv. příznaky (anglicky flags), tj. jednobitové hodnoty, které popisují vlastnosti výsledku jednoduché operace (výpočtu), např. výsledek je nula, při sčítání došlo k přenosu do vyššího řádu, výsledek je záporný apod. Příznaky jsou v procesoru umístěny ve speciálním registru. 
  • Skoky – v podstatě se jedná o příkaz GOTO, který známe z BASICu 
  • Cykly – instrukce umožňují realizovat pouze jednoduché cykly, obvykle se jedná o spojení vyhodnocení podmínky a skoku (pracuje se tedy opět s příznaky) 
  • Volání podprogramu – mechanismus volání podprogramu odpovídá přibližně příkazu GOSUB, který známe z BASICu, navíc se přidávají instrukce, která zajistí uložení registrů procesoru do paměti (do tzv. zásobníku) a jejich následné obnovení (vyzvednutí) 

Instrukce jsou kódovány prostřednictvím čísel a takto vzniklé informaci říkáme strojový kód. 

Přímo ve strojovém kódu se obvykle neprogramuje, k programování používáme programovací jazyky, které jsou pro člověka srozumitelnější.