Rozdział 1.5.1.5
Tryb baza-przemieszczenie
Tryb baza-przemieszczenie jest trybem pośrednim w którym argument znajduje się w pamięci a jego adres
efektywny w określonym segmencie jest obliczany jako suma bazy znajdującej się w rejestrze bazowym
(rejestry EAX, EBX, ECX, EDX, ESP, EBP, ESI, EDI) i przemieszczenia zawartego w kodzie rozkazu:
adres efektywny = baza + przemieszczenie .
Jako przykład możemy rozpatrzyć rozkaz
MOV EAX, [EBX+4H]
w którym argument źródłowy jest brany spod adresu efektywnego będącego zawartością rejestru bazowego EBX
zwiększoną o przemieszczenie 4H zapisane w rozkazie.
Adresowanie podstawa-przesuniecie potrzebne jest np. przy dostępie do pola rekordu. Wówczas rejestr bazowy
zawiera adres (offset) początku rekordu, a przemieszczenie wskazuje adres względny pola.
W trybie tym dostęp do argumentu wymaga następujących czynności:
- Pobrania przemieszczenia z pola rozkazu i bazy z rejestru bazowego,
- Obliczenie adresu efektywnego przez dodanie przemieszczenia do bazy,
- Dostępu do pamięci (cykl maszynowy) - wystawienia adresu argumentu na szynę adresową,
pobrania argumentu z szyny danych do rejestru (przy odczycie) lub zapisania argumentu z szyny danych do pamięci
(przy zapisie).
Zaletą trybu adresowania z rejestrem podstawowym jest większa
elastyczność w sposobie definiowania adresu, często wykorzystywana w złożonych strukturach danych, wadą natomiast jest konieczność obliczania adresu efektywnego.
Powrót do rozdziału 1
Powrót do strony głównej