Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
10
1.2.
Asembler.Wykładyićwiczenia
Architekturasprzętowakomputera
Wnajbardziejogólnychkategoriachkomputerjestniczyminnymjakurządzeniem,które
przemieszczadanezjednegomiejscawinne,czasamijeprzekształcającdoróżnychpostaci.
Posiadapięć„głów”,akażdaznichodpowiadazaswójodcinekpracy.Jedna„głowa”kontro-
lujeklawiaturę,myszkę,dysk,drugamonitor,drukarkę,dysk,trzeciaczuwanaddziałania-
miarytmetyczno-logicznymi,czwartasprawujewładzęnadpamięcią,aostatnia,piąta,czuwa
nadcałością.Nadniąkontrolęsprawujejużtylkoczłowiek.
1.3.
PowstawanieirozwójjęzykaAsembler
Niejestprzypadkiem,żerozkazy,któremożewykonaćprocesor,ściśleodpowiadająak-
cjomwnimzachodzącym.Czymtaknaprawdęjestrozkaz?Czymróżnisięonoddanej,która
jestprzezniegoprzetwarzana?Rozkazjesttoelementarnaoperacja,jakąmożewykonać
mikroprocesor,itaknaprawdęniczymnieróżnisięoddanej(danych).Oglądającwpamięci
ciągiznaków(zapisanychwsystemieszesnastkowym),niepotrafimypowiedzieć,któryztych
znakówtorozkaz,aktórytodana.Owszem,wprawneokoprogramisty-asemblerowcapotrafi
zdużymprawdopodobieństwempowiedzieć:Terazwidzę(chyba)rozkaz,ateraztodana
tego(chyba)rozkazu.Jeślidopamięciwczytanyzostał„czystyjakłza”program,tzw.mapa
pamięci(plikzrozszerzeniem.COM),toprawdopodobieństwoodgadnięciatego,cojestczym,
znacznierośnie.TakieodgadywaniewAsemblerze,żez„upieczonegoplacka”określisięilość
irodzajskładników,nazywasiędeasemblacją(bądźdezasemblacją)koduwynikowego
(wykonywalnego)nakodźródłowy.Każdyrozkazposiadaswojąwartość,programzaśjest
niczymwięcej,jaksekwencyjniepoukładanymiwartościami.Alektóryrozkazprocesorbędzie
wykonywałjakonastępny?Musząbyćjakieśwskaźnikipokazujące,gdzietenrozkazwpamię-
cisięznajduje.Gdynastępnyrozkazjestczytanyzpamięciiwykonywany,wskaźnikustawia-
nyjestnakolejnymrozkazie.Niektórerozkazymogąustawiaćwskaźnikidonowychwartości;
pozwalatoprocesorowinaniesekwencyjnewykonywanieszeregurozkazów,uzależnioneod
określonychwarunków.WjęzykuAsemblerposługujemysięrozkazamiprocesora,któretak
zostałyskonstruowaneinazwane,byichformabyłazorientowananaczłowieka.Krótko
mówiąc,stanowitoludzkiwymiar„złotychścieżekprocesoraijegorozkazów”.Niejestwięc
takźle,jakbysięmogłowydawać.Takjakasembler(programdotłumaczenia)przekształca
programźródłowyzjednegorodzajutekstuzrozumiałegodlaczłowiekanatekst„zrozumiały”
dlaprocesora,taktenżeprocesormusiówtekstjeszczeprzerobićnatzw.językmaszynowy,na
zeraijedynki.PodczasgdyjęzykAsemblerijęzykmaszynowysobiefunkcjonalnierówno-
ważne,tojednakjęzykAsemblerjestjęzykiemdlaludzi.Owiele,wielełatwiejzapamiętać
rozkazADDAL,3wyrażonywpostacimnemonicznej,oznaczającydodawaniewartości3do
rejestruAL,niżgdybyrozkazbyłzapisanywformieliczb04i03sekwencyjniewprowadzo-
nychwprogramie.
NiezwykleużytecznąstronąAsemblerajestto,pozwalaonmaksymalnieefektywnie
kontrolowaćakcjeprocesorajednązadrugą.Owszem,kodźródłowywAsemblerzejestdłuż-
szyniżwjęzykuCczyPascalu,ależadenkodniejesttak„szybkiizgrabny”,jakkodprogra-
muwAsemblerze.Asemblertonietylkojęzyk,którypozwalatrzymaćpełnąkontrolęnad
komputerem,alerównieżfilozofiastylupracyprocesoraijegootoczenia.