Zrozumiec Assembler9

Zrozumiec Assembler9



14 Zrozumieć Asembler

0.3.5 Adresowanie

Bardzo ważną rolę spełniają (miejscami dziwne) numery znajdujące się z lewej strony instrukcji programu oraz danych. Każdy z tych numerów jest niepowtarzalny, co znaczy, że dowolny numer oznaczający jakieś pole (komórkę pamięci) pojawia się tylko jeden raz. Taki numer nazywa sic adresem. Wszelkie dane są zapamiętywane lub odczytywane tylko za pośrednictwem ich adresu w obrębie pamięci komputera. Procedury są wywoływane przez podanie adresu komórki, od której się zaczynają.

Prostokącik (czyli komórka pamięci) o nazwie LICZNIK PROGRAMU przechowuje adres instrukcji, która ma być wykonana bezpośrednio po zakończeniu wykonania aktualnej instrukcji. Liczba przechowywana w liczniku programu jest zwiększana o 1 po zakończeniu wykonywania każdej instrukcji, chyba że wykonywana instrukcja programu nakaże licznikowi programu wykonać coś inne-

8°-

Zwróć uwagę na instrukcję JUMP BACK 7, znajdującą się pod adresem 0049- Po wykonywaniu lej instrukcji licznik programu zostaje zmniejszony o siedem. Jest to odpowiednik polecenia „cofnij się o siedem pól”, występującego we wszystkich grach planszowych.

0.3.6 Podobieństwa

Jak na razie tyle wyjaśnień dotyczących gry w Asembler zupełnie wystarczy To jest w dalszym ciągu rozdział 0 i w dalszym ciągu znajdujemy się w zakresie metafor, czyli porównań. Czytelnicy, którzy mieli więcej do czynienia z komputerami, rozpoznają na pewno więcej szczegółów na rysunku 0.2. (Jest to w rzeczywistości prawdziwy program, który wykonuje określoną czynność, możesz to sprawdzić!) Czytelnicy, którzy nie mieli styczności z wewnętrznym działaniem komputera, nie powinni czuć się zdeprymowani czy zagubieni. Utworzyłem tę grę w Asemblera tylko w celu podkreślenia kilku podstawowych zasad:

Poszczególne kroki są bardzo proste. Pojedyncza instrukcja jedynie w wyjątkowych wypadkach czyni coś więcej niż przeniesienie pojedynczego bajtu z jednej komórki do innej czy porównanie wartości danych zawartych w dwóch różnych komórkach. To jest dobra nowina, ponieważ będziesz mógł koncentrować się na prostych czynnościach wykonywanych w pojedynczych instrukcjach,

bez zagłębiania się w złożone problemy. Ale równocześnie mamy tu i złą nowinę...

■    Dla wykonania czegokolwiek użytecznego trzeba napisać dużo instrukcji. W Pascalu czy Basicu można napisać użyteczny program nawet w pięciu czy sześciu linijkach. Użyteczny programik w Asemblerze nie będzie nigdy krótszy niż powiedzmy 50 linii, a cokolwiek poważniejszego wymaga ich setek czy tysięcy. Umiejętność tworzenia programu w języku Asemblera sprowadza się do umiejętności uporządkowania tych setek czy tysięcy instrukcji tak, żeby ten program mógł być odczytywany i zrozumiały. I wreszcie:

■    Kluczem do programowania w Asemblerze jest dobre zrozumienie adresowania pamięci. W językach takich jak Pascal czy Basic troskę o to, gdzie ma być lub została umieszczona taka czy inna dana, przejmuje kompilator tego języka. Ty nadajesz temu czemuś własną nazwę i polem wywołujesz to nazwę tę podając. W Asemblerze Ty podajesz tylko numery komórek i musisz zawsze wiedzieć, gdzie się co znajduje, a także, jakie komórki są wolne. Przy czytaniu tej książki zawsze zwracaj uwagę na adresowanie, to znaczy patrz, gdzie co się znajduje. Gra w Asemblera zawiera wiele instrukcji, które operują adresami. (Na przykład MOVE dane z [B] do [C] oznacza przeniesienie danych zapamiętanych pod adresem wskazanym w rejestrze B pod adres określony w rejestrze C.) Adresowanie jest najbardziej skomplikowaną częścią programowania w Asemblerze, ale gdy już je opanujesz, to będziesz miał programowanie w małym palcu.

Wszystkie informacje zawarte w tym rozdziale mają charakter orientacyjny. Próbowałem tu przedstawić pełny zarys programowania

w Asemblerze i powiązać jego podstawowe zasady z życiem codzien-

*

nym. Zycie jest tylko ciągiem kroków i sprawdzeń. To samo mamy w grach planszowych i to samo jest w języku Asemblera. Pamiętaj o tych porównaniach, gdy zaczniemy się zagłębiać w gąszcz liczb, którymi operują komputery.


Wyszukiwarka

Podobne podstrony:
Image032Rozdzial2 Rozdział 2SYSTEMY LICZBOWE I KODY2.1. Systemy liczbowe W systemach cyfrowych bardz
IMG22 Minerały i skały ■    Minerały skalotwórcze — odgrywają bardzo ważną rolę 
Żubra. Bardzo ważną rolę w życiu kulturalnym gminy odgrywa Biblioteka Publiczna w Mirosławcu, mająca
Komplementariusze 9Komplementariusze odgrywają bardzo ważną rolę w spółce. Przejawem tego jest
ScanImage09 Napędy pneumatyczne Urządzenia pneumatyczne odgrywają bardzo ważną rolę we współczesnych
skanowanie0011 INDEKSY RYNKU Odgrywają bardzo ważną rolę, gdy inwestor jest zainteresowany w uzyskan
CCF20081202021 Saprofity rozwijają się kosztem martwej materii organiw Odgrywają one bardzo ważną r
IS Strona OLEJ V. PRZEGLĄDY, REGULACJA I KONSERWACJA Olej silnikowy odgrywa bardzo ważną rolę w dzi
Opis kategoriiHISTORIA HARCERSTWA NA ZIEMI GLIWICKIEJ Historia pełni w naszym życiu bardzo ważną rol
83 Rozdział 4 Konstrukcje stalowe4.7 Element zbiorczy Element zbiorczy pełni bardzo ważną rolę:
3. Posybilizm - wykorzystał elementy determinizmu i nihilizmu. Środowisko odgrywa bardzo ważną rolę
Obraz66 Wśród wielu innych sprawności ważną rolę spełniają sprawności po-znawczo-badawcze. Ich gama

więcej podobnych podstron