Sw3.6-m8-1.2-Slajd17

Z Studia Informatyczne
Wersja z dnia 10:34, 4 wrz 2006 autorstwa PZakrzewski (dyskusja | edycje)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacjiPrzejdź do wyszukiwania

Podstawowe tryby adresowania

Podstawowe tryby adresowania


Przez tryby adresowania rozumie się sposób wskazywania na argumenty wykorzystywane w trakcie wykonywania instrukcji. Standardowe mikrokontrolery wykorzystują kilka różnych sposobów adresowania. Jednak ciągły rozwój techniki mikroprocesorowej powoduje wzbogacanie o nowe możliwości adresowania. Nowe mikrokontrolery typu embedded posiadają tak rozbudowane możliwości adresowania jak procesory stosowane we współczesnych komputerach.

Adresowanie implikowane dotyczy instrukcji jednobajtowych, dla których zarówno operand jak i miejsce przeznaczenia są określone przez dany rozkaz. Ten tryb adresowania jest używany wyłącznie w odniesieniu do wewnętrznych rejestrów mikrokontrolera, szczególnie w odniesieniu do akumulatora. Ze względu na krótki format instrukcji tryb ten jest bardzo efektywny, a ograniczeniem jest tylko liczba dostępnych rejestrów.

W adresowaniu natychmiastowym operand jest podany w sposób jawny w postaci kodu instrukcji. Ten tryb może być zatem używany wyłącznie w odniesieniu do stałych. Instrukcje wykorzystujące ten tryb adresowania zajmują w pamięci więcej miejsca i wykonują się wolniej niż instrukcje bazujące na adresowaniu implikowanym.

Adresowanie bezpośrednie ma zastosowanie dla instrukcji wielobajtowych, w których po kodzie rozkazu następuje adres argumentu umieszczonego w pamięci danych. Mikrokontrolery dopuszczają stosowanie tego typu adresowania w ograniczonym zakresie do pamięci danych. Np. mikrokontroler serii 80C51 dopuszcza adresowanie w tym trybie tylko pamięci w zakresie adresów od 0 do 255, natomiast mikrokontroler 16-bitowy 80C51 XA tylko pierwsze 1kB pamięci danych.

Adresowanie indeksowe nie jest stosowane we wszystkich mikrokontrolerach. Nie występuje m. in. w mikrokontrolerach serii x51. Adresowanie to polega na obliczaniu adresu przez sumowanie zawartości specjalnie przeznaczonego do indeksowania rejestru, zwanego rejestrem indeksowym z adresem bezpośrednim, zapisanym w instrukcji. Obliczony w ten sposób adres jest adresem efektywnym. Tryb ten jest korzystny, gdy operujemy na blokach danych.

W adresowaniu pośrednim część instrukcji wskazuje na komórkę pamięci zawierającą adres efektywny.

Adresowanie względne służy natomiast do adresowania pamięci względem adresu aktualnie wykonywanej instrukcji w pamięci programu. Adres ten jest przechowywany w specjalnie do tego przeznaczonym rejestrze zwanym wskaźnikiem instrukcji (IP). Tryb ten jest wykorzystywany przez rozkazy skoku.

Dzisiaj mikrokontrolery opierają adresowanie na segmentacji pamięci. Segmentacja polega na podziale przestrzeni adresowej na segmenty, które najczęściej mają rozmiar 64kB. W najprostszej wersji zakłada się stałą liczbę segmentów i stałe ich umiejscowienie. Najbardziej zaawansowane rozwiązania bazują natomiast na wykorzystaniu rejestrów segmentowych dzięki czemu można swobodnie definiować położenie segmentów.


<< Poprzedni slajd | Spis treści | Następny slajd >>