170 likes | 284 Views
Adresy a adresování. Střední odborná škola Otrokovice. Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Miloš Zatloukal
E N D
Adresy a adresování Střední odborná škola Otrokovice Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Miloš Zatloukal Dostupné z Metodického portálu www.rvp.cz, ISSN: 1802-4785, financovaného z ESF a státního rozpočtu ČR. Provozováno Výzkumným ústavem pedagogickým v Praze. www.zlinskedumy.cz
Adresy a adresování Obsah tématuAdresa, adresování – definiceDruhy adres Podle umístění (zdrojová a cílová) Podle účelu - implicitní - bezprostřední adresování - přímé adresování – adresa 1. řádu - nepřímé adresování – adresa 2. řádu- relativní adresování - indexové adresování - stránkové adresování
Adresy a adresování Adresa - adresou rozumíme označení místa v paměti, do kterého informaci zapisujeme nebo z kterého informaci čteme (vybíráme). - k pohybu informace (kopírování nebo přesun) dochází při zpracování programu velmi často. - uvnitř procesoru – mezi jeho registry - mezi procesorem a pamětí - mezi procesorem a vnějšími zařízeními Jaká hlediska jsou při tom sledována? - rychlost přemístění informace - přístupnost informace - úsporné vyjádření odkazu na operand - snadné přemístění programu v operační paměti
Adresování – jde o techniku přístupu k paměťové buňce – prostřednictvím její adresy – říkáme, že jde o adresovací metody. Pozn. V této práci uváděné příklady se týkají, (pokud nebude uvedeno jinak), instrukčního souboru a mikropočítačů rodiny x51. Dělení adres 1) Podle umístění (odkud – kam) a) adresa zdrojová (Source) – jde o adresu, odkud je informace čtena b) adresa cílová (Destination) – jde o adresu, kam je informace zapsána 2) Podle účelu V této skupině je způsobů adresování více, může jít o adresu „schovanou“ v instrukci číselnou konstantu zadanou jako parametr instrukce adresu určenou známým symbolem nebo číslem adresu určenou ukazatelem
2) Podle účelu a) Implicitní adresování - implicitní znamená, že se adresa nezadává (jako číslo nebo symbolicky) - ale je daná významem instrukce - s určitou instrukcí je adresa nějakého registru pevně spojena Příklad: instrukce JZ „návěští“ (skok na adresu „návěští“ při nulovém obsahu střadače) přitom střadač (akumulátor) se značí A, ale nikde v této instrukci nemusí být uveden J značí skok (Jump), Z značí Zero (nulu) instrukce JC „návěští“ (skok na adresu „návěští“ pokud bit C = 1) J značí skok (Jump), C značí bit C (CY – Carry – příznak přenosu)
2) Podle účelu b) Bezprostřední adresování - také se mu říká adresování s přímým operandem - nebo je označováno jako adresa 0. řádu (nultého) - neobsahuje v kódu instrukce adresu operandu - obsahuje přímo samotný operand (číslo, s nímž je počítáno) - číselná konstanta bývá uvedena speciálním znakem (např. znakem „#“ = mřížka) -číselná konstanta může být zapsána v některé z těchto číselných soustav - Desítkové (nepotřebuje žádný pomocné písmeno pro identifikaci) - Dvojkové (binární, pomocné písmeno: „B“) - Osmičkové (oktalové, pomocné písmeno: „Q“) - Šestnáctkové (hexadecimální, pomocné písmeno: „H“)
2) Podle účelu b) Bezprostřední adresování – přímý operand – pokračování Příklad: Zapište postupně do střadače („A“) číselnou konstantu 14 (desítkově) v soustavách – desítkové, dvojkové, osmičkové a šestnáctkové, použijte instrukci MOV A, operand (14)10 = (1110)2 = (16)8 = (E)16 MOV A, #14 MOV A, #1110B MOV A, #16Q MOV A, #0EH Pozn. Šestnáctkové číslo nesmí začínat písmenem, musí být před ním číslice – zde nula
2) Podle účelu c) Přímé adresování – adresa prvního řádu - adresa je uvedena jako volitelný parametr instrukce - může být vyjádřena jako: - číselná – např. číslo buňky v paměti uvnitř procesoru např. 5 (přímá adresa č. 5) - symbolická – dohodnutá (písmeno, skupina písmen, kombinace písmena a číslice) (např. A, B, P1, R2, PSW, DPTR, P3.2 = kombinace adresy bajtu a bitu 2 uvnitř tohoto bajtu P3) Příklad: Zapište postupně do střadače („A“) obsah registru R2 MOV A, 2 MOV A, R2 Pozn. Zápisníkový registr R2 má číselnou adresu: 2, symbolickou R2
2) Podle účelu d) Nepřímé adresování – adresa druhého řádu - jde o adresu adresy - v instrukci je zadána adresa umístění skutečně žádané adresy - skutečně žádaná adresa (adresa 2. řádu) je jako číslo zapsána v ukazateli (adrese 1. řádu) - jako ukazatel bývá vyčleněn jeden nebo několik registrů (např. R0 a R1) - označení , že jde o ukazatel (adresu 1. řádu) se provádí speciálním znakem (např. jde o znak „@“) Příklad: Zapište obsah adresy 5 určený nepřímo do střadače („A“) MOV R1, #5 ;do R1 je zapsáno číslo 5 a dál se stává adresou MOV A, @R1 ; obsah adresy 5 se načte do střadače Pozn. K jiným ukazatelům patří např. ukazatel zásobníku.
2) Podle účelu e) Relativní adresování - výsledná cílová adresa se vypočítá jako součet adresy základní (také vztažná adresa nebo adresa bázová) a adresy zvané posunutí (offset) – tato je uvedena s instrukcí - bázová adresa bývá obsažena: - v čítači instrukcí - v bázovém registru (pak se někdy hovoří o bázovém adresování) - Posunutí bývá zadáno v adresní části instrukce - použití: v instrukcích skoku - programy používající relativní adresování jsou snadno přemístitelné v operační paměti Příklad: JMP @A+DPTR - Jde o nepodmíněný skok na adresu, která vznikne součtem bázové adresy (obsah střadače) a posunutí (uvedeného v ukazateli dat – DPTR) - adresa je vypočítána až v průběhu programu
2) Podle účelu -f) Indexové adresování - je podobné relativnímu adresování - používá speciálních indexových registrů vybavených pro práci se strukturou typu pole (tabulky) - počet indexových registrů: jeden nebo dva Příklady indexového registru: - čítač instrukcí – PC - ukazatel do datové paměti – DPTR g) stránkové adresování - jde o variantu relativního adresování - operační paměť je rozdělena na „stránky“ - „stránka“ má daný počet „řádků“ (úměrný rozsahu posunutí) - pro 8 bitové posunutí má „stránka“ 28= 256 „řádků“ - bázovou adresou je počáteční adresa „stránky“ ve které je instrukce umístěna
1. Adresu, odkud je informace čtena, označujeme jako adresu : Základní Výchozí Zdrojovou Kontrolní otázky 2. Instrukce MOV A, #1111B provede: Do střadače (A) umístí číselnou konstantu 15 zapsanou dvojkově Do střadače (A) umístí obsah adresy na adrese 15 Do střadače (A) umístí obsah adresy 15 3. Instrukce MOV A, 3 a MOV A, R3 jsou : Rozdílné Realizují stejný výsledek Příkladem shodné adresy zadané číselně a symbolicky
1. Adresu, odkud je informace čtena, označujeme jako adresu : Základní Výchozí Zdrojovou Kontrolní otázky – správné odpovědi červeně 2. Instrukce MOV A, #1111B provede: Do střadače (A) umístí číselnou konstantu 15 zapsanou dvojkově Do střadače (A) umístí obsah adresy na adrese 15 Do střadače (A) umístí obsah adresy 15 3. Instrukce MOV A, 3 a MOV A, R3 jsou : Rozdílné Realizují stejný výsledek Příkladem shodné adresy zadané číselně a symbolicky
Seznam použité literatury: [1] Matoušek, D.: Číslicová technika, BEN, Praha, 2001, ISBN 80-7232-206-0 [2] Blatný, J., Krištoufek, K., Pokorný, Z., Kolenička, J.: Číslicové počítače, SNTL, Praha, 1982 [3] Kesl, J.: Elektronika III – Číslicová technika, BEN, Praha, 2003, ISBN 80-7300-075-X