Vissza a főoldalra    Vissza a PIC főoldalra

<< 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.

Az adatmemória közvetett címzése
10.2.3-1. Ábra

      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 >>

Vissza a főoldalra    Vissza a PIC főoldalra