2.doc

(29 KB) Pobierz
Adresowanie

Adresowanie

Pamięć to zbiór komórek o jednakowych rozmiarach

Każda komórka zawiera jednostkę informacyjną zwaną słowem

Każda komórka posiada unikatowy numer - adres.

Sposób przydzielania indeksów (adresów) jest cechą architektury.

Stosowane są dwie konwencje numeracji bitów i bajtów:

- ważniejszy niższy (big endian) - słowo (lub bit) zawierające bardziej znaczącą część informacji posiada niższy numer porządkowy (adres)

- ważniejszy wyższy (little endian) - słowo (lub bit) zawierajáce bardziej znaczącą część informacji posiada wyższy numer porządkowy

INTEL 80x86 - little endian, PowerPC big endian, MC 680x0 bajty big endian a bity little endian.

Rozdzielczość adresowanie

- Rozdzielczość adresowania jest cechą architektury mającą wpływ na organizację kompilatora. Podstawową jednostką informacji jest słowo mmaszynowe. Dane systemowe są tworzone w formacie zgodnm z rozmiarem słowa maszynowego lub stanowiącym jego wielokrotność.

- Szerokość magistrali systemowej musi umożliwiać co najmniej przesłana do jednego słowa maszynowego w jednym cyklu pamięi.

- W przypadku gdy rozdzielczość adresowania jest większa niż rozmiar słowa lub szerokość magistrali jest wielokrotnością podstawowej jednostki adresowej powstaje problem wpasowania danych w struktury pamięci. (Problem ten powinien być rozwiązany podczas kompilacji programu).

- Umieszczenie danych o rozmiarze jednostkowym równym rozmiarowi komórki pamięi jest dowolne, jeśli słowo zajmuje dwie komórki pamięci to adres słowa powinien być parzysty, cztery komórki to adres podzielny przez cztery.

Przestrzenie adresowe

- Ze względu na sposób adresowania wyróżnia się następujące przestrzenie adresowe:

- obszar roboczy - rejestry procesora

- pamięć główna

- przestrzeń sterowania

- stos

- przestrzeń wejścia/wyjścia

- identyfikator przychpdzącego przerwania

Odwzorowanie przestrzeni adresowych

- ROZDZIELNE PRZESTRZENIE ADRESOWE - używa się różnych rozkawów dla każdej z przestrzeni

- JEDNOLITA PRZESTRZEŃ ADRESOWA - te same rozkazy, natomiast w zależności od adresu można adresować różne urządzenia lub różne fragmenty pamięci

Tryby adresowania

- natychmiastowe

- bezpośrednie

- pośrednie

- rejestrowe

- rejestrowe pośrednie

-  z przesuniéciem

- stosowe

Adresowanie natychmiastowe

- argumenr jest obecny w rozkazie

- ARGUMENT = A

np. ADD 5

- żadne odniesienie do pamięci (poza pobraniem rozkazu) nie jest potrzebne do uzyskania argumentu

- szybkie

- rozmiar liczb jest ograniczony do rozmiaru pola adresowego

adresowanie  bezpośrednie

- pole adresowe zawiera efektywny adres argumentu

- adres efektywny (EA) = pole adresowe (A)

np. ADD A

- wymaga tylko jednego odniesienia do pamięci

- nie wymaga żadnych obliczeń

- umożliwia obsługę tylko ograniczonej przestrzeni aresowej

Adresowanie pośrednie

- zwykle długość pola adresowego jest mniejsza niż długość słowa, co ogranicza zakres adresów

- pole adresowe odnosi się do słowa w pamięci, które z kolei zawiera pełnej długoßci adres argumentu

- EA = (A)

- nawiasy oznaczają zawartość

- duża dostępna przestrzeń adresowa

- wymaga dwóch odniesień do pamięci

- otrzymanie adresu i uzyskanie samej warości

Adresowanie rejestrowe

- pole adresowe odnosi się do rejestru (a nie jak poprzednio do adresu w pamięci głównej)

- EA = R

- ograniczone liczbą rejestrów

- niewielkie pole adresowe

- nie są wymagane odniesienia do pamięci

- bardzo szybkie (czas dostępu do rejestru procesora jest znacznie mniejszy niż czas dostępu do pamiéci głównej)

Adresowanie pośrednie rejestrowe

- podobne do adresowania pośredniego

- EA=(R)

- pole adrtesowe odnosi się do rejestru, który z kolei zawiera w pełnej długości adresu agrumentu

- duża przestrzeń adresowa

- jedno odniesienie do pamięci mniej niż przy adresowaniu pośrednim

Adresowanie z przesuniéciem

- łączy możliwości adresowania bezpośredniego oraz pośredniego adresowania rejestrowego

- EA=A+(R)

- pole adresowe zawiera dwie wartości

- typy adresowania z przesunięciem:

- względne - rejestrem domyślnym jest licznik programu (PC)

- z rejestrem podstawowym - rejestr zawiera adres pamiéci a pole adresowe przesunięcie

- indeksowanie - pole adresowe odnosi się do adresu w pamiéci głównej a rejestr zawiera dodatnie przesuniécie do tego adresu

Tryby adresowania INTEL

- W architekturze Intel 80x86 zaadresowanie danej w pamiéci wymaga dwóch wskaźników: identyfikatora spójnego bloku pamięci zwanego segmentem i adresu względnego wewnątrz segmentu o wartoßci nie przekraczajácej rozmiaru segmentu

- Najbardziej złożonym trybem adresowania spotykanym w procesorach rodziny Intel 80x86 jest dwuwskaźnikowe skalowalne adresowanie bazowo-indeksowe z przemieszczeniem

LA=([wskaźnik segmentu])+(baza)+(indeks)*skala+przemieszczenie

Nawias[...] ozacza adres pośredni, a nawias(...) oznacza, że składowa adresu umieszczona jest w rejestrze procesora

W trybie rzeczywistym - to co da się zaadresować przy ustalonym segmencie a zmieniającym się offsecie nazywamy stroną pamięci.

...
Zgłoś jeśli naruszono regulamin