Rozdział 1.5.1.6
Tryb indeks-skala-przemieszczenie
Tryb indeks-skala-przemieszczenie jest rozszerzeniem adresowania
z rejestrem bazowym. Adres argumentu jest obliczany na podstawie indeksu w rejestrze indeksowym
(rejestry EAX, EBX, ECX, EDX, EBP, ESI, EDI), współczynnika skali określonego w rozkazie (liczba 1, 2, 4 lub 8) i
przemieszczenia zawartego w rozkazie. Argument znajduje się wówczas w pamięci, a jego adres efektywny jest obliczany
ze wzoru:
adres efektywny = indeks * skala + przemieszczenie.
Jako przykład możemy rozpatrzyć rozkaz:
MOV EAX, [8*EBX + 4]
Adresowanie z indeksem służy do dostępu do statycznej tablicy o
ustalonym rozmiarze elementu odpowiadającym skali. Przemieszczenie jest adresem początku tablicy a zawartość
rejestru indeksowego indeksem tablicy. Skala 1 zapewnia tablicę bajtów, skala 2 - tablicę słów 16 bitowych,
skala 4 - tablicę słów podwójnych - 32 bitowych, a skala 8 - tablicę słów poczwórnych - 64 bitowych.
W trybie tym dostęp do argumentu wymaga następujących czynności:
- Pobrania przemieszczenia i skali z pola rozkazu oraz indeksu z rejestru,
- Obliczenia adresu efektywnego przez dodanie do przemieszczenia indeksu pomnożonego przez skalę,
- Odwołania do pamięci (cykl maszynowy) - wystawienia adresu argumentu na szynę adresową,
pobrania argumentu z szyny danych (przy odczycie) lub zapisania argumentu z szyny danych (przyzapisie).
Powrót do rozdziału 1
Powrót do strony głównej