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