; tohle je komentar. Co je za strednikem, to se nepreklada LIST P=PIC16F1708 ; typ procesoru, PRED include #include p16F1708.inc ; nacucne uvedeny file ; podivejte se, co je v nem ; najdeme ho v C:\Program Files (x86)\Microchip\MPLABX\v3.15\mpasmx code ; tady zacina kod programu POC1 equ 0x71 POC2 equ 0x72 POC3 equ 0x73 __CONFIG _CONFIG1, _WDTE_OFF ; vypiname WatchDog org 0 ; org nasledujici instrukce je na adrese ..... goto start ; sem si dejte breakpoint org 4 retfie start: nop ; sem si dame breakpoint ; predpokladame znalost neprimeho adresovani - konventional nop nop banksel FSR0L clrf FSR0L movlw 0x20 movwf FSR0H ; do registru FSR0 jsme nacpali cislo 0010 0000 0000 0000 ; tedy 0x2000 ; touto adresou zacina linearni mod adresovani ; adresa 0x2000 neexistuje, je to fiktivni adresa ; jednotlive bloky " General Purpose Register 80 Bytes" jsou proste nacpany za sebe ; !!!! CORE registers, SFR a COMMON-ASCCESS registers se vynechavaji !!!! movlw .77 ; desitkove !!!! movwf POC1 ; do View- WAtch si dejte primo adresu 0x71 movlw 0x38 cyk1: movwi ++FSR0 ; nedeste se, nejdrive se udela INC, a potom se pouzije ; takze prvni adresa bude 0x21 ; ; divame se do File Registers decfsz POC1 ; a dale do View- Watch FSR0 POC1 goto cyk1 nop ; az vas prestane bavit mackat F7 , dejte si sem Breakpoint nop ; a udelejte F5 nop ; jsme na bunce 0x06d , divame se do File Registers movwi ++FSR0 ; a tohle je tu proto, abyste si mohli vychutnat nop ; prechod mezi bankami ; pomalu mackame F7, koukame do File registrer a do Watch movwi ++FSR0 ; tady ukladame do bunky 0x006F !!!!!! nop movwi ++FSR0 ; ukladame do 0x20 na strance 1 (0x0A0) nop movwi ++FSR0 nop movwi ++FSR0 ; bunka 0x022 na strance 2 nop movlw .153 movwf POC1 movlw 0x38 cyk2: movwi ++FSR0 ; a zase rychleji ; divame se do File Registers decfsz POC1 ; a dale do View- Watch FSR0 POC1 goto cyk2 nop ; BREAKPOINT nop ; ; FSR0 ma hodnotu 0x20EB movwi ++FSR0 ; a opet se divame na prechod mezi bankami ; bunka 0x16C , tedy banka 2 , p?ed koncem GPR movwi ++FSR0 movwi ++FSR0 movwi ++FSR0 movwi ++FSR0 ; skaceme na 0x1A0 ; tady jsme na strance 3 movwi ++FSR0 movwi ++FSR0 movwi ++FSR0 movwi ++FSR0 nop nop nop goto $ ; pokud to vsecno chapete az sem ; tak muzete rict, ze umite linearni mod neprimeho adresovani goto $ end ; end znamena "a tady prestan prekladat" ; NENI !!!! to konec programu pro PICa, ; ve funkcnim PICovi ZADNY KONEC PROGRAMU neni, musi to stale neco delat ; end equ code define org navesti jsou prikazz pro PREKLADAC, ; tedy pro program, ktery ze slov dela instrukce (cisla !!!! ) ; proto take po techto instrukcich nenajdete ; ve hex file ani stopy