Zrozumiec Assembler7

Zrozumiec Assembler7



70 Zrozumieć Asembler

Program komputerowy jest binarnym ciągiem instrukcji języka maszynowego zapamiętanych w pamięci komputera. Nie istnieje żadna różnica między binarnym ciągiem instrukcji a dowolnym innym ciągiem bajtów znajdujących się w pa-mięci. Jedyna różnica wynika ze sposobu, w jaki mikroprocesor traktuje ten ciąg bajtów.

2.4.2 Budowa mikroprocesora

Nic bez powodu mówiłem wcześniej, że instrukcje dla mikroprocesora są kodami dwójkowymi. Mikroprocesor nie odczytuje żadnych liczb z pamięci i nie sprawdza znaczenia tych liczb. Instrukcje nie są liczbami. Instrukcje są dwójkowym wzorem wskazującym, jak mają być przełączone elektroniczne przełączniki. Cały mikroprocesor zbudowany jest z naprawdę bardzo dużej liczby tranzystorów. Pewna ich część tworzy taką tabelę wzorcową, służącą do „zrozumienia” instrukcji. Są to po prostu (w 80386 jest ich ponad milion) przełączniki połączone z innymi przełącznikami, które dalej są połączone z następnymi, tworząc specjalną sieć połączeń.

Na przykład instrukcja 01000000 (40H) poleca CPU dodanie jedynki do aktualnej wartości rejestru AX. Mikroprocesor działa następująco: bajt instrukcji pobierany z pamięci zostaje pobrany z pamięci i na jego podstawie osiem przełączników bitowych zostaje ustawionych w położenia zgodne z wartościami ośmiu bitów tego bajtu. W przypadku instrukcji 40H, siedem tych przełączników bitowych zostaje ustawionych w położeniu „wyłączony”, a jeden w położeniu „włączony”.

To odczytanie załadowanego bajtu powoduje reakcję łańcuchową przełączeń kolejnych przełączników związanych z tymi pierwszymi. Te następne wywołują przełączenia dalszych i w ten sposób w całym CPU rozprzestrzenia się fala zmian stanów przełączników tranzystorowych. Ta fala przełączeń nie jest oczywiście przypadkowa. Przebiega ona w ściśle określony sposób - określony przez zespoły inżynierskie firmy Intel. W tym przypadku po przebiegnięciu tej fali wewnątrz mikroprocesora występuje tylko jedna jedyna zmiana: w rejestrze AX nastąpiło zwiększenie dotychczasowej wartości o 1.

W mikroprocesorze utworzone są nie tylko zwykłe przełączniki, ale również tak zwane bramki (ang. gal es) - układy wykonujące operacje logiczne. Na wyjściu takich bramek pojawia się sygnał wtedy zależne od doprowadzonych do nich kilku innych (odpowiednich) sygnałów.

Zespoły bramek tworzą bardziej skomplikowane układy, takie jak np. sumatory, zadaniem których jest dodawanie liczb. W przypadku naszej lawiny przełączeń wywołanych kodem dwójkowym 01000000, następuje przeniesienie istniejącej wartości rejestru AX do odpowiedniego wejścia sumatora, a równocześnie do innego wejścia zostaje tam dostarczona liczba 1. W dalszym ciągu działania tej fali przełączeń wynik sumowania AX+1 zostanie przeniesiony z powrotem do rejestru AX.

Nie jest w końcu tak istotne, w jaki sposób pracuje mikroprocesor. Ważne jest, że gdy wpiszesz do programu odpowiednią instrukcję, to mikroprocesor wykona ją tak, jak mu to poleciłeś.

3 Zmieniamy kurs

Pierwszym elementem genialnej i magicznej inteligencji komputera jest umiejętność wykonania 'lwoich poleceń krok po kroku. Drugim elementem tej magii jest umiejętność zmiany kolejności wykonywania instrukcji wskutek wyników działania innych z nich.

Mikroprocesor może więc wykonać instrukcję (lub ciąg instrukcji) tworzących jakąś użyteczną funkcję, a następnie natrafić na instrukcję, która mu nakaże np. wrócić do początku tego ciągu. Wówczas ten pożyteczny ciąg może być wykonywany wielokrotnie.

W dowolnym miejscu programu może występować ponadto dowolna instrukcja skoku nakazująca pominięcie następnych instrukcji, i przejście do wykonywania jakiejś innej części programu.

W sumie oznacza to, że program może być wykonywany w dowolnych kawałkach, powtarzanych wielokrotnie w dowolnych kolejno-ściach, wykonując żądaną funkcję komputera. Umiejętność wykonywania skoku nie jest wcale skomplikowaną funkcją. W mikroprocesorze masz specjalny rejestr o nazwie wskaźnik (licznik) instrukcji. W tym rejestrze znajduje się liczba, która jest traktowana jako adres kolejnej instrukcji. Instrukcje skoków są po prostu instrukcjami zmieniającymi zawartość tego rejestru. Do wskaźnika in-


Wyszukiwarka

Podobne podstrony:
Języki programowania❖    Asemblery - programy komputerowe przeznaczone do tłumaczenia
Dodatkowym uprawnieniem występującym wyłącznie w przypadku programów komputerowych jest możliwość
1. STRUKTURA PROGRAMU OBRÓBKI.1.1. WPROWADZENIE. Program obróbki jest uporządkowanym zbiorem instruk
Zrozumiec Assembler3 2 Zrozumieć Asembler0.1 Wszystko można zaplanować Szybko! Obudzić dzieci, już
Zrozumiec Assembler4 4 Zrozumieć Asembler Wskaźnik podaje jej jedną z dwóch informacji: 1) jest dos
Zrozumiec Assembler9 34 Zrozumieć Asembler nej sumy. Jedyne, co możemy zapamiętywać, to aktualna wa
Zrozumiec Assembler3 Zrozumieć Asembler F jest ile?” 3. Tak wygląda odejmowanie z pożyczką w system
Zrozumiec Assembler7 50 Zrozumieć Asembler Rozdział 2_Co kryje się pod obudową komputera?Czym
Zrozumiec Assembler8 52 Zrozumieć Asembler2.1 RAX - mój pierwszy komputer W roku 1970, kiedy kończy
Zrozumiec Assembler0 Zrozumieć Asembler Napięcia utrzymywane są w stałej wartości. W większości prz
Zrozumiec Assembler2 60 Zrozumieć Asembler2.2.5 Bajty, słowa i podwójne słowa Dawno już minęły te c
Zrozumiec Assembler3 Zrozumieć Asembler Taki system był używany na komputerach IBM PC oraz XT. Komp
Zrozumiec Assembler0 76 Zrozumieć Asembler3.2.1    Pan kaie/ sługa musi... Co to jes
Zrozumiec Assembler1 78 Zrozumieć Asembler rze, też liczymy od zera). Teraz, gdy głowica jest prawi
Zrozumiec Assembler2 80 Zrozumieć Asembler Kolejny niewidzialny znak spełnia istotną rolę w struktu
Program komputerowy (aplikacja) - sekwencja symboli (zrozumiałych dla komputera rozkazów) przeznaczo

więcej podobnych podstron