Asembler wykład 09-10-2000


Assembler - wykład : 09-10-2000

Architektura mikroprocesora 8088 CD

Przesyłanie danych pomiędzy CPU, a pamięcią operacyjną następuje poprzez interfejs pamięci. Dane rozpoznawane jako instrukcje umieszczane są w KOLEJCE INSTRUKCJI. System sterujący wykonaniem instrukcji pobiera je z tej kolejki i przesyła je do jednostki wykonawczej, gdzie są interpretowane i wykonywane. Z jednostką wykonawczą współpracuje jednostka logiczna. Jednostka ta realizuje operacje arytmetyczne i operacje porównania. Ponadto jednostka ta ustawia flagi sygnalizujące stan. Na przykład flaga SF jest ustawiona dla oznaczenia ujemnego wyniku operacji arytmetycznych.

1. ZBIÓR REJESTRÓW PROCESORA 8088

Dla programisty rejestry są najważniejszą częścią procesora. Są cztery rejestry ogólnego przeznaczenia. Każdy z nich jest 16-bitowy. Rejestry te noszą nazwy: AX, BX, CX, DX. Do każdego z nich można się zwracać jak do pary 8-bitowych rejestrów. Lewy bajt (bardziej znaczący) jest traktowany jako wyższy (high), a prawy jako niższy (low).

15 0

AH AX AL

BH BX BL

CH CX CL

DH DX DL

Struktura rejestrów ogólnego przeznaczenia.

Są dwa rejestry indeksów łańcuchów, każdy 16-bitowy, są one nazwane:

SI (Source Index) - indeks źródłowego łańcucha

DI (Destination Index) - indeks łańcucha przeznaczenia

Są one używane do wskazywania danych w pamięci. Mogą być też wykorzystywane jako rejestry 16-bitowe ogólnego przeznaczenia.

15 0

SI

DI

Struktura rejestrów indeksów łańcuchowych

Rejestr wskaźnika stosu SP (Stack Pointer) jest wykorzystywany do implementacji stosu w pamięci.

Rejestr wskaźnika bazy BP (Base Pointer) jest wykorzystywany do implementacji stosu w pamięci lub jako rejestr ogólnego przeznaczenia.

15 0

SP

BP

Struktura rejestrów wskaźnika stosu i bazy

Cztery rejestry segmentów: CS, DS, SS, ES. Są to rejestry specjalnego przeznaczenia. Rejestr segmentu jest używany w czasie odwoływania się do pamięci.

15 0

CS

DS

SS

ES

Struktura rejestrów segmentów

Rejestr wskaźników instrukcji IP (Instruction Pointer) - wskazuje następną instrukcję do wykonania.

15 0

IP

Struktura rejestru wskaźnika instrukcji

Rejestr znaczników - zawiera kilka jednobitowych wskaźników, opisujących stan mikroprocesora.

0x01 graphic

Rys. Ogólna budowa mikroprocesora 8086

2. MIKROPROCESOR

Mikroprocesor jest to układ zdolny wykonywać operacje arytmetyczno-logiczne w sposób programowany. Wykonany jest w technologii półprzewodnikowej o wielkiej skali integracji.

Mikroprocesor zawiera podstawowe zespoły funkcjonalne:

 arytmetyczny układ logiczny - ALU

 zespół rejestrów ogólnego przeznaczenia

 układ sterowania z rejestrem rozkazów i dekoderem rozkazów

Mikroprocesor to m.in. Intel 8088, Intel 8086 - różnią się one jedynie szerokością szyny danych. Z punktu widzenia programisty są identyczne, różnią się sprzętowo: Intel 8086 ma magistralę (szynę) 16-bitową, a Intel 8088 - tylko 8-bitową. W związku z tym Intel 8086 ma, przy identycznej częstotliwości zegara, wyższą sprawność.

Mikroprocesor 8086 oraz 8088 składa się z dwóch części - dwóch „podprocesorów”, które pracują w danym stopniu od siebie niezależnie:

Obydwa te układy współpracują ze sobą w sposób asynchroniczny (tzn. gdy jeden z nich pobiera rozkaz, drugi go wykonuje).

BIU wyznacza adresy fizyczne odwołań do pamięci oraz steruje wprowadzaniem kodów i argumentów kolejnych rozkazów, aż do zapełnienia kolejki. W tym samym czasie układ wykonawczy (EU) zajęty jest dekodowaniem i wykonywaniem pobranego z kolejki rozkazu.

Gdy EU rozpozna konieczność wykonania dodatkowej operacji odczytu lub zapisu danych, wystawia odpowiednie zlecenie dla BIU, BIU realizuje je natychmiast po zakończeniu aktualnie wykonywanego cyklu.

W mikroprocesorze 8086 przeciętny czas wykonania rozkazu jest dłuższy niż cykl wprowadzania kodu. Gdy w programie zdarzy się skok od głównego ciągu programu, wówczas kolejka rozkazów będzie zapisywana od początku, a układ EU musi zaczekać do czasu wprowadzenia kodu pierwszej operacji z nowego obszaru. Podobnie, odwołanie do danej, którą należy odczytać z pamięci, wstrzymuje pracę EU do momentu, aż BIU zrealizuje zlecenie. Może być i tak, że układ BIU jest w stanie pasywnym, nie mając żadnych zleceń do EU.

Unikając zbytniego obciążenia mikroprocesora można przesyłać dane do i z pamięci komputera bez mikroprocesora. Operacja ta nosi nazwę bezpośredniego dostępu do pamięci lub DMA (Direct Memory Acces) i jest obsługiwana przez układ znany jako 8237A lub przez sterownik DMA.

Głównym zadaniem sterownika jest umożliwienie czytania i zapisywania danych, przez napęd dysku, bez zatrudniania mikroprocesora. Ponieważ operacja wejścia/wyjścia na dysk jest zbyt wolna, DMA może znacznie przyspieszyć działanie komputera.

W opisach dotyczących mikroprocesora wiele razy pojawiły się już takie pojęcia, jak: rejestr, rozkaz.

Z punktu widzenia programisty są to najważniejsze pojęcia. Aby komputer mógł wykonać pewne zadanie, w jego pamięci musi istnieć odpowiedni program. Jeśli program będziemy pisać w języku asembler, wówczas musimy znać najpierw operacje, jakie jest w stanie wykonać mikroprocesor. Te operacje to ROZKAZY. Każdy mikroprocesor posiada listę możliwych do wykonania rozkazów.

Wewnątrz mikroprocesorów 8086/88 dostępnych programowo jest 14 REJESTRÓW, poprzez które mikroprocesor ma dostęp do ponad miliona bajtów pamięci i do 65535 portów wejścia/wyjścia.

Rejestry tworzą obszar o wielkości 28 bajtów. Mają one literowe oznaczenia i służą do tymczasowego przechowywania danych. Rejestry w sensie fizycznym, są to przerzutniki elektroniczne, układy tranzystorów mogące łatwo znajdować się w stanie wysokim (H) i niskim (L), a zatem mogą i służą do zapamiętania liczb binarnych: 0 i 1.

3. STOS

STOS - to fragment pamięci przydzielanej dynamicznie przez programy, w której informacje są przechowywane i pobierane według reguły mówiącej, że ostatnia wprowadzona informacja jest pierwszą odczytywaną, z ang. LIFO - Last In - Firs Out (reguła stosu).

Stos zapewnia programom miejsce do przechowywania i śledzenia bieżącej pracy. Najważniejszym przeznaczeniem stosu jest utrzymywanie zapisu, skąd były wywoływane podprogramy i jakie parametry były do nich przesłane.

Stos może być też użyty jako chwilowa pamięć, choć nie jest to jego zasadnicze zadanie. Informację zorganizowaną w postaci stosu można zapisać tylko na wierzchołek stosu i odczytać tylko z jego wierzchołka.

Stos porównuje się niekiedy do stosu książek leżących jedna na drugiej. Zapis informacji odpowiada położeniu nowej książki, odczyt - zdjęciu książki z wierzchołka stosu.

Stos w komputerze jest jednostką pamięci z rejestrem adresowym, który może zliczać. Nigdy nie wprowadza się do niego żadnej wartości. Taki rejestr adresowy jest nazwany SP (Stack Pointer) ponieważ jego wartość zawsze wskazuje adres szczytowego (wierzchołka) słowa stosu.

Na tym komputerowym stosie umieszcza się lub zeń usuwa tylko elementy, czyli słowa pamięci. W stosie nic nie jest jednak układane, ani zdejmowane przez zwiększenie lub zmniejszenie o 1 zawartości wskaźnika stosu. Każda część dowolnego programu może utworzyć swoją własną przestrzeń stosu.



Wyszukiwarka