Változók

A ma használatos Pic18 mikrokontrollereknél az adatmemória 16 részre van felosztva, melyeknek mérete egyenként 256 bájtosak a 0-a címet is számolva. Így minden bank 8 bittel címezhető.

A memórialapok címzése a BSR (Bank Select Register) alsó 4 bitjével történik, ez a négy bit egészíti ki az egyszavas utasítások 8 címbitjét az adatmemória megcímzéséhez szükséges 12 bitre. A gyakran használt regiszterek könnyebb elérésének biztosítására szolgál az úgynevezett Access Bank, ami egy olyan memórialapot jelent, amely mindig elérhető egyetlen utasításciklusban, a BSR regiszter tartalmától függetlenül. Erre a lapra vannak leképezve a speciális funkciójú regiszterek (0xF60 - 0xFFF) és az általános célú regiszterek első 96 bájtja (0x000 - 0x05F). 

http://esca.atomki.hu/PIC18/intro.html

 

A RAM memóriába, másként fogalmazva a file regiszterbe memóriafoglalás a változóknak:


FŐPROGRAM

  LIST   P=PIC18F45K42 ;  ISO 8859-2   / FOPROGRAM.asm
;  LIST   E=OFF ;OFF:hibafájl generálás tiltás (https://www.muszeroldal.hu/measurenotes/pictanf.pdf
;  LIST   d=OFF ; Listafájl generálás tiltás ; nem működik, hibát jelez rá
;  LIST   Q=OFF ; Hibaüzenetek tiltása/engedélyezése ; nem működik, hibát jelez rá
  
  #include p18f45k42.inc ; 
 
; A PROGRAM FŐ OLDALA    / Megjegyzés
; Fosc = 8 MHz ; Az UART valószínűleg 8 MHz-re van beállítva!!!   / Megjegyzés
  
   
  CODE   

cimkek: ;Másik fájlból globálissá tett cimkék beimportálása, vagyis az objektumok behívása 
  extern konfig ;  Esetünkben a config.asm fájlból a konfig cimke, vagyis a konfig eljárás beimportálása amit
                      ;  korábban globálissá tettünk

valtozok:    UDATA _ACS ;   0x5F címig 0x60 már nem jó, Ha nincs kezdo memoriacim megadva, akkor a 0x00 címtől kezdi
                                     ; lefoglalni a memóriát az  ACCESS ramban. Ez az ACCESS ramterület! Ez a Pic18-ra vonatkozik.
                                     ;  http://www.t-es-t.hu/elokep/pic/felhkk/kk/sz110509.htm
WREG_TEMP       RES   1    ; w register for context saving (ACCESS)
STATUS_TEMP     RES   1    ; status used for context saving
BSR_TEMP          RES   1    ; bank select used for ISR context saving       
Akarmi                 RES   2    ; 2 bájtos adat. Nem lépheti túl a 0x5F címet!

;Objektum fájlok esetében az általános adatmemória-terület azonosítóinak megadása az adat-szekciókban lehetséges, amelyek a következők lehetnek:
;     · az UDATA fordításvezérlő utasítással kezdődő értékadás nélküli deklarációs rész;
;     · az UDATA_OVR fordításvezérlő utasítással kezdődő értékadás nélküli felülírható deklarációs rész;
;     · az UDATA_SHR fordításvezérlő utasítással kezdődő értékadás nélküli deklarációs rész a minden lapról elérhető adatmemória-helyekhez;
;     · az IDATA fordításvezérlő utasítással kezdődő értékadásos deklarációs rész.
     





Seged_1  RES 1 ; Seged_1 mentve van int_L-kor
  global Seged_1 ; Elsősorban adat ideiglenes tárolására, pld. összehasonlítésra


 

Objektumok, illetve objektum fájlok. jelen esezben 1 fájl, a config.asm 
 



Objektum fájlok írásakor az ORG fordításvezérlő utasítást nem használhatunk, így csak a CODE utasítást használjuk kötelező módon.