00001 ;------------------------------------------------------
00002 ; PICCOLO project
00003 ; Copyright (c) 2009-2010 Istvan Cserny (cserny@atomki.hu)
00004 ;
00005 ; Mintaprogram az értékadást segítő makrók használatának
00006 ; bemutatására (LET8, LET16, LET32)
00007 ;
00008 ; FIGYELEM: A programot az MPLAB szimulátorában futtassuk!
00009 ;------------------------------------------------------
00010
00011 #include "..\include\p18_all.inc"
00012
00013 ;******************************************************
00014 ; Helyfoglalás a változók számára
00015 ; Szándékosan az ACCESS területen kívül helyeztük el a
00016 ; változókat, hogy a BANKED módú elérést tesztelhessük.
00017 ;******************************************************
00018 mydata udata 0x120
00019 my_byte res 1
00020 my_word res 2
00021 my_dword res 4
00022
00023 ;***************************************************
00024 ; LET32 - 32-bites előjel nélküli értékadás
00025 ; valtozo: az előjel nélküli változó címe
00026 ; adat: a változóba írandó adat (0 - 0xffffffff)
00027 ;
00028 ; Példa:
00029 ; LET32 my_dword,D'573612400'
00030 ;***************************************************
00031 LET32 macro valtozo,adat
00032 banksel valtozo
00033 movlw adat & H'FF'
00034 movwf valtozo
00035 movlw adat >>D'8' & H'FF'
00036 movwf valtozo+1
00037 movlw adat >>D'16' & H'FF'
00038 movwf valtozo+2
00039 movlw adat >>D'24' & H'FF'
00040 movwf valtozo+3
00041 endm
00042 ;***************************************************
00043 ; LET16 - 16-bites előjel nélküli értékadás
00044 ; valtozo: az előjel nélküli változó címe
00045 ; adat: a változóba írandó adat (0 - 0xffff)
00046 ;
00047 ; Példa:
00048 ; LET16 my_word,D'57360'
00049 ;***************************************************
00050 LET16 macro valtozo,adat
00051 banksel valtozo
00052 movlw adat & H'FF'
00053 movwf valtozo
00054 movlw adat >>D'8' & H'FF'
00055 movwf valtozo+1
00056 endm
00057
00058 ;***************************************************
00059 ; LET8 - 8-bites előjel nélküli értékadás
00060 ; valtozo: az előjel nélküli változó címe
00061 ; adat: a változóba írandó adat (0 - 0xff)
00062 ;
00063 ; Példa:
00064 ; LET8 my_byte,D'160'
00065 ;***************************************************
00066 LET8 macro valtozo,adat
00067 banksel valtozo
00068 movlw adat
00069 movwf valtozo
00070 endm
00071
00072 PGM CODE
00073 ;--- A főprogram kötelezően a main címkénél kezdődik!
00074 main: LET32 my_dword,H'553175FF'
00075 LET16 my_word,D'13572'
00076 LET8 my_byte,D'37'
00077 goto $
00078 end