Mikroprocesory - Skripta
Níže je uveden pouze náhled materiálu. Kliknutím na tlačítko 'Stáhnout soubor' stáhnete kompletní formátovaný materiál ve formátu PDF.
Efektivní adresa je dána součtem báze a offsetu.
Příkladem použití relativního adresování může být adresování prvků struktury (záznamu).
Bázový registr obsahuje adresu začátku struktury a ofset pak určuje posuv začátku konkrétního
prvku od začátku struktury.
Autorelativní adresování (Autorelative Addressing) je speciálním případem relativního
adresování, kdy úlohu bázového registru hraje programový čítač PC. Adresuje se tedy vzhledem
k aktuálnímu obsahu programového čítače. Výsledná adresa vynikne sečtením offsetu, který je
součástí instrukce, a obsahu PC. Autorelativní adresování se používá převážně pro instrukce
podmíněných skoků. Výhodou autorelativního adresování je jeho nezávislost na umístění
v paměti. Pozor: u mnohých procesorů programový čítač v době stanovování adresy cíle skoku
již ukazuje na začátek následující instrukce, takže velikost offsetu je třeba stanovovat jako
vzdálenost cíle skoku od začátku následující instrukce následující instrukce.
Indexové adresování (Indexed Addressing) je modifikací relativního adresování. Jako
bázová adresa se použije hodnota, která je součástí instrukce. Ofset je uložen v registru, který
se nazývá indexový registr.
Mnohé procesory dovolují obsah indexového registru vynásobit měřítkem (scale).
Měřítko je číslo, které udává velikost operandu, s nímž pracujeme. Např. chceme-li pracovat
s prvky pole o velikosti 4 byty, nastavíme měřítko na hodnotu 4. Pak se inkrementací
indexového registru o 1, posouváme o 4 byty, tedy na následující prvek pole.
20
FEKT Vysokého učení technického v Brně
U mnohých procesorů mohou instrukce využívající indexového adresování zároveň