Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
10
2.Architekturaklasycznychkomputerów
Rysunek2.4.Przykładowyprogramdodawania
programuwjęzykuwewnętrznym(postaćzero-jedynkowa)komputera.Narysunku2.4b
przedstawionotensamprogramwtzw.językuasemblerowym.Jesttopostaćwykorzystu-
jącamnemonicznyzapisrozkazów.Narysunku2.4cprzedstawionopostaćtegoprogramu
wjęzykuwysokiegopoziomu(np.FORTRAN).ZadaniemtranslatorajęzykaFORTRAN,
jakitranslatorajęzykaasemblera,jestkonwersjaprogramunapostaćwjęzykuwe-
wnętrznym.Programdodajedwieliczbyiwydrukowujewynik(najlepiejwidaćtona
rys.2.4c).Wprowadzonododatkowotrzyzałożenia.Popierwszezałożono,żejedenze
składnikówsumy(wprzykładzieliczba00000101)będziewprowadzanyprzezprogra-
mistę,awięcznajdziesięwkodzieprogramu.Podrugiezałożono,żedrugiskładniksumy
jużwcześniejzapisanopodznanyadres(np.0000000000001111).Potrzeciezałożono,
żeadresdrukarkijest10101010.
Jakprogramtakimożebyćzapisanywpamięci?Pierwszymrozkazemprogramujest
rozkazzapisaniadojednegozrejestrówprocesorapierwszegoskładnikasumy.Jestto
rozkazokodziemnemonicznymMOV(ang.moveprześlij).Wpopularnymkomputerze
IBMPCjegokodbinarnyjest10110001.Trzyostatniebity(001)wskazująnarejestr(jest
torejestrCL),doktóregomazostaćprzesłanawartość.Kodtenwskazujetakżenato,że
następnybajtprogramu(następnakomórkapamięci)mabyćinterpretowanyniejako
rozkaz,ajakoargumenttejoperacji.Wtymprzypadkuoznaczato,żedorejestruCLma
zostaćzapisanytenargument,czyliliczba5.Całkowitadługośćtejinstrukcjiwynosi
zatem2bajty.TrzecibajtprogramujestponowniebajtemrozkazuMOV
.
Innykodtegorozkazu(10100000)wskazujenato,żeprzesłaniemanastąpićdo
innegorejestru(ostatnietrzybity,tj.000wskazują,żejesttorejestrA)iżeargumenttej
operacjiznajdujesięwkomórcepamięci.Adresemtejkomórkidwanastępnebajty
koduprogramu(wnaszymprzykładzietobajty00000000i00001111).Zatemcała
instrukcjamadługośćtrzechbajtów,awwynikujejwykonaniawrejestrzeAzostanie
umieszczonawartość2(zawartośćkomórkipamięciopodanymadresie).Trzecim
rozkazemjestrozkazdodawania(mnemoniczneADD).Kod00000000mówiotym,że
jesttoinstrukcjadwubajtowa.Drugibajtinstrukcjiwskazujemiejsceskądnależyodczytać