Vissza a főoldalra    Vissza a PIC főoldalra

<< Előző oldal   Vissza a tartalomjegyzékhez   Következő oldal >>

 


11.4.10. Feltétel nélküli elágazás


Assembly programozás tartalomjegyzék

Ugrás közvetlen címzéssel
Ugrás közvetett címzéssel
Szubrutinhívás


      Ugrás közvetlen címzéssel:

      Közvetlen címzéssel a teljes programmemória-terület elérhető. Ehhez, a memóriaterület nagyságától függően, 1..3 utasításra van szükség. A GOTO feltétel nélküli ugró utasítással a PC programszámláló értéke tetszőlegesre állítható, így a program a beállított helyről folytatódik. A PC alsó 11 bitje az utasításban elhelyezett címnek megfelelően áll be, a felső bitek pedig a PCLATH regiszter alábbi ábrán látható helyiértékeiről töltődnek be a GOTO utasítás végrehajtásakor.

Közvetlen ugrás
11.4.10-1. Ábra

      Ahhoz, hogy (2k-nál nagyobb programmemória esetén) a GOTO utasítás megfelelően működjön a PCLATH regiszter értékét előre be kell állítani az elérni kívánt memórialapnak megfelelően.

      A közvetlen címzés bemutatása 2k memória-szónál nem nagyobb program esetén:

... ...    
  goto CIMKE ;ugrás a CIMKE azonosítójú programmemória-helyre
  ...    

      A közvetlen címzés bemutatása 2k..4k memória-szó nagyságú programok esetén:

... ...    
  bsf PCLATH,3 ;a 2. programmemória-lap kiválasztása
  goto CIMKE ;ugrás a CIMKE azonosítójú programmemória-helyre
  ...    

      A közvetlen címzés bemutatása 4k memória-szónál nagyobb programok esetén:

... ...    
  bcf PCLATH,4 ;a 2. programmemória-lap kiválasztása
  bsf PCLATH,3 ;a 2. programmemória-lap kiválasztása
  goto CIMKE ;ugrás a CIMKE azonosítójú programmemória-helyre
  ...    

Vissza a lap tetejére


      Ugrás közvetett címzéssel:

      Közvetett címzéssel a teljes programmemória-terület elérhető. Ehhez, a kívánt ugrás nagyságától függően, 2..4 utasításra van szükség. A PC programszámláló értéke szoftverből tetszőlegesen módosítható, így a program a beállított helyről folytatódik. A PC alsó 8 bitje a PCL vezérlő regiszter írásával, a felső 5 bit pedig a PCLATH regiszter írásával állítható be. A PCLATH értéke a PCL regiszter írásakor kerül át a PC felső részébe, tehát a beállítást a PCLATH értékének megadásával kell kezdeni.
      A PCL regiszter 8 bites mérete 256 szavas lapokra tagolja a programmemóriát. Az így keletkező lapokon belüli ugráshoz elegendő csak a PCL-t változtatni.

Közvetett ugrás
11.4.10-2. Ábra

      Ez a programelágazási mód az úgynevezett számított GOTO (Computed GOTO).

      Egy (256 szavas) lapon belüli ugrás:

... ...    
  movlw 0x05 ;W = 5, az eltolás megadása
  addwf PCL,1 ;PCL = PCL + 5
  ...   ;ide ugrana, ha W = 0 lenne
  ...   ;ide ugrana, ha W = 1 lenne
  ...   ;ide ugrana, ha W = 2 lenne
  ...   ;ide ugrana, ha W = 3 lenne
  ...   ;ide ugrana, ha W = 4 lenne
  ...   ;ide ugrik, mert W = 5
  ...    

      Az ADDWF utasítás helyén SUBWF és MOVWF utasítás is állhat.

      Egy távoli ugrás:

... ...    
  movlw 0x02 ;W = 02d, a cím felső részének megadása
  movwf PCLATH,1 ;PCLATH = 02h
  movlw 0x0A ;W = 0Ah, a cím alsó részének megadása
  movwf PCL,1 ;PCL = 0Ah, PC = 20Ah
  ...    

  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