Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
1.1.Oprogramowaniuijęzykachprogramowania
Wszystkieprogramykomputerowekomunikująsięzprocesoremzapomocąspecjalnego
języka.Słowategojęzykatoliczby.Niektóreztychliczbmająokreśloneznaczenie.Są
kodamiinstrukcjidowykonania(bardzoprostymiinstrukcjami,złożoneprogramyskładają
sięzbardzodużejliczbytakichprostychinstrukcji).Inneliczbyoznaczajądodatkowąin-
formację,którajestpotrzebnadowykonaniainstrukcji.Tadodatkowainformacjastanowi
zwykledane,naktórychsąprzeprowadzanejakieśoperacje(np.dodawanieliczb).Cyfrowa
reprezentacjainstrukcji,zrozumiałaprzezprocesor,nazywasiękodemmaszynowymlub
językiemmaszynowym.Przykładowasekwencjainstrukcjimaszynowychhipotetycznego
komputeramożewyglądaćtak:
10001010100010000000000111001010...
..
żtozadziwneliczbyskładającesięzsamychzerijedynek?Jesttozapisinformacji
(wtymprzypadkukoduprogramu)wjęzykumaszynowymjakociąguliczbwsystemie
binarnym(czylisystemieliczbowym,wktórymdodefiniowanialiczbużywasięcyfr1i0).
Informacjarozumianaprzezkomputermusibyćtakwłaśniezapisywana,gdyżpowszechnie
stosowaneurządzeniacyfrowemająokreślonezbioryelementarnychstanów,zktórych
każdymożebyćcharakteryzowanyjakowłączony(1)lubwyłączony(0).Ztegowynika,że
najmniejszailośćinformacji,którąmożeoperowaćkomputer,tocyfra1lub0wbinarnej
reprezentacjiliczby.Wielkośćtajestnazywanabitem.
Ważnąrolęwinformatyceodgrywabajt,którywewspółczesnychsystemachjestrówny
8bitom,dlategożeprocesoryoperująnajednostkachzwanychsłowamimaszynowymi,
składającychsięzcałkowitejliczbybajtów.
Bajtjestnajmniejszączęściąsłowamaszynowego,dostępnąbezpośredniodlaprocesora.
Kodyinstrukcjiprocesorówbyłyisąjedno-lubkilkubajtowe.Znaki(litery)byłyisąkodowane
jakoliczbyjedno-(np.kodyASCII,EBCDIC)lubwielobajtowe(np.DCSBlubUnicode).Apo-
nieważłbajtamożnaprzedstawićjakocyfręszesnastkową,toheksadecymalnysystem
liczbowy(wktórymopróczcyfr0–9używasięliterA,B,C,D,E,F,przyczymnp.Ama
wartość10,F15,aliczba10oznaczadziesietne16)jestwygodniejszą(odbinarnego,bo
jestbardziejczytelny;aleioddziesiętnego,bowidzimywnimwyraźnypodziałnabajty)
formąprzedstawianiazapisumaszynowegokoduprogramu.
Oczywiście,możnanapisaćprogramwjęzykumaszynowym,aledomyślamysię,że
jesttozadanieniezwyklepracochłonneinieefektywne.Ajednakpoczątkowotakwłaśnie
pisanoprogramy.
Napomocbiednymprogramistompionierskiejepokikomputeryzacjiprzyszłostworzenie
asemblerówjęzykówsymbolicznegozapisuinstrukcjimaszynowychdanegoprocesora.
Odtegomomentuprogram,którywcześniejtrzebabyłozapisywaćnp.tak:
5830D2525A30D2565030D260
możnabyłozapisaćdużoprościejibardziejzrozumiale,np.
1.1.Oprogramowaniuijęzykachprogramowania
15