Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
1.
PodstawyAsemblera
1.1.
NaturajęzykaAsembler
Niemalwszyscywiemy,żekomputertotakieurządzenie,któreposługujesiętylkodwo-
macyframi,zeremijedynką.Jaktojestjednakmożliwe,żepomimotakubogiegoalfabetu
komputermożewytworzyćtylepięknychobrazów,dźwięków,animacji?Całatajemnicatego
swoistegopięknatkwiwszybkościoperowaniaprzezmaszynęowymizeramiijedynkami.
Alezacznijmyodpoczątku.Każdamaszynacyfrowamaswójmózg-procesoriserce-
zegar.Imsprawniejszymózgiimszybszyzegar,nadającyrytmpracymaszyny,tymwiększą
maonasiłędodziałania.Piszącprogramyzapomocąalfabetuzero-jedynkowego,sięgamy
donajniższegopoziomumaszyny,dojejmózguiserca.Interesujące,prawda?Jesttylkojeden
problem:trzebawiedzieć,jakwpisywaćtecyferki,iconajpierw,0czy1?Amożekilka
jedyneknaraz,apotemkilkazer,możejednakprzeplataćjeodpowiednio?Alejak?Zeroczy
jedynka,mająswojezarezerwowanemiejscawichustalonymciągu.Alektoustaliłtenciąg?
Postaciciągówzero-jedynkowychustalilitwórcy,projektanciprocesora,nadającimokreślone
znaczenie,zgodnezjegobudowąizastosowaniem.Czytooznacza,żewkontakciezproceso-
remskazanijesteśmynawpisywaniezerijedynekwodpowiedniejkolejności?Natoby
wyglądało...Itomabyćtenpięknyoraznajskuteczniejszyzewszystkichjęzyków,język
Asembler?Toznaczy,jeżelichcielibyśmychwilowozatrzymaćprocesor,musielibyśmywpisać
10011011,niestraszącCzytelnikadługimi„tasiemcami”zero-jedynkowymiwprzypadku
bardziejzłożonychsytuacji.
Odpewnegoczasuniejestjużtakźle.JakpodająksiążkiohistoriiAsemblera,podczas
rywalizacjimiędzymocarstwamizaprogramowanorakietęVanquardjakoodpowiedźna
Sputnikaz1957r.wjęzykuwewnętrznymmaszyny.Poprostu„nafaszerowano”jejwnętrze
zeramiijedynkami.Icóżsięstało.Ano,stałosię!Programistaprzeoczyłzeroalbomoże
jedynkę,poczymodbyłsiękosztownyspektaklnanieboskłonie.Czytenprogramistadalejtam
pracował?Niewiadomo.Wkażdymrazierzeczpotraktowanopoważnie,wziętopoduwagę
omylnośćczłowiekaisięgniętopopomysłzpoczątkulat50.Pomysłbyłprosty;należało
napisaćprogramprzekształcającymonotonneciągizero-jedynkowe,któreoznaczałybykody
rozkazówprocesoraorazichadresywpamięci,nasymbolicznenazwy.Dokonanotego
iokazałosię,żetodziaładodziśtakpowstałsymbolicznyasembler(jakoprogram-
translatorpisanyjestzawszemałąliterką,abyniemylićznazwąjęzykaAsembler).Wilksyty
iowcacała.Asemblerjakojęzykpozostał,zamienionotylkożmudneiłatwedopomylenia
kodyzero-jedynkowerozkazówprocesorananazwysymboliczne,tzw.mnemoniki.
Itaknp.,zamiastwpisywaćciąg10011011wprowadzającyprocesorwstanoczekiwania,
wpisywaćbędziemysłowoangielskieWAIT.Bogdybyśmysiępomyliliiciąg10011011
zamienilizciągiem11110100,spowodowalibyśmysporezamieszanie,gdyżcałkowicieza-
trzymalibyśmyprocesor.Nietrudnosobiewyobrazić,jakieniewyobrażalneszkodymoże
poczynićprocesor,którynaglezostał„zwolnionyzpracy”przezprogram.