<< Előző oldal Vissza a tartalomjegyzékhez Következő oldal >>
10.2.3. Közvetett címzés
Közvetett (indirekt) címzésnél a memóriacím nincs elhelyezve az utasításban. Ez a címzési mód nagyban megkönnyíti a memória tetszőleges helyétől kezdődő adatsorok kezelését, ha az adatsor minden elemén ugyanazokat a műveleteket kell elvégezni.
Az adatmemória közvetett címzéséhez két vezérlő regisztert kell kezelni:
ˇ
az FSR regisztert (File Select Register), amely az adatmemória egyik helyét jelöli ki és tulajdonképpen egy "RAM mutató". Az FSR regiszterbe kell beírni a kezelni kívánt adatsor első elemének címét, majd ezután az FSR értékének inkrementálásával (1-gyel történő növelésével) címezhető a többi adat.
ˇ
az INDF regisztert, amely nem valódi regiszter, mert az INDF regiszteren történő bármilyen műveletvégzés az FSR által mutatott adatregiszteren hajtódik végre. Az INDF az adatmemória 00h címén van elhelyezve.
Tehát az INDF regiszter olvasásakor vagy írásakor az FSR által kijelölt adatregiszter olvasódik ki vagy íródik be.
(Ha az FSR értéke 00h (vagyis az INDF-re mutat), az INDF regisztert olvasva, az "0"-t ad vissza. Az INDF írásának hatására viszont csak a STATUS regiszterben elhelyezett Z zérusjelző-bit fog működni, de az INDF nem tárolja el a beírt adatot.)
Nagyobb adatmemóriájú (4 lapos) mikrovezérlők esetén az FSR címzőregiszter 8 bitje nem elegendő a teljes adatmemória címzéséhez. Ezért a 0-1. és 2-3. lappárok közötti váltást a STATUS regiszterben elhelyezett IRP bit végzi. (Az IRP = "0" állapot a 0-1., az IRP = "1" állapot pedig a 2-3. lappárt választja ki.)
A közvetett címzés blokkvázlata látható a következő ábrán.
A következő programrészlet az adatmemória 20h-tól 2Fh-ig terjedő tartományát (16 bájt) nullázza le közvetett címzéssel.
... bcf STATUS,IRP ;a 0-1. lappár kiválasztása movlw 0x20 ;a 20h kezdőcím bevitele a munkaregiszterbe movwf FSR ;a kezdőcím bevitele a címregiszterbe ujra clrf INDF ;a közvetve kijelölt memóriahely törlése incf FSR,F ;a címregiszter növelése 1-gyel btfss FSR,4 ;a címregiszter vizsgálata goto ujra ;ugrás, ha a cím < 2Fh ...
Ezzel a módszerrel a teljes adatmemória is lenullázható vagy feltölthető tetszőleges kezdőértékkel.
Tudomány és Technika (test@t-es-t.hu)
<< Előző oldal Vissza a tartalomjegyzékhez Vissza a lap tetejére Következő oldal >>