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