Forum » Programiranje » esembler-hitro
esembler-hitro
aaaaa93 ::
Mi lahko kdo pomaga in pove kaj ti programi naredijo esembler pic16f877a prosim mudi se.
#include <p16f877a.inc> __config 0x3f CBLOCK 0x20 stevec, pom_stevec ENDC org 0x00 goto start org 0x05 start movlw 0x0a movwf pom_stevec clrf stevec zanka_pon incf stevec,1 decf pom_stevec,1 btfss STATUS,Z goto zanka_pon end #include <p16f877a.inc> __config 0x3f7a cblock 0x20 stevec, znak endc org 0x00 goto start org 0x05 start call vpis ponavljaj goto ponavljaj ; konec glavnega programa vpis movlw 0x40 movwf FSR movlw 0x09 movwf stevec movlw 0x31 movwf znak vpis_ponav movf znak,0 ;0 pomeni,da se znak zapiše v delovni register movwf INDF ;v navidezni register smo vpisali delovni register incf FSR,1 ;poveča za ena incf FSR,1 incf znak,1 decf stevec,1 ;zmanjša števec za ena movlw 0x00 subwf stevec ;odšteje delovni register minus file register btfss STATUS, 2 ;testira v statusnem registru ničelno zastavico goto vpis_ponav return end #include <p16f877a.inc> __config 0x3f7a cblock 0x20 stevec, znak endc org 0x00 goto start org 0x05 start call vpis ponavljaj goto ponavljaj ; konec glavnega programa vpis movlw 0x40 movwf FSR movlw 0x09 movwf stevec movlw 0x39 movwf znak vpis_ponav movf znak,0 ;0 pomeni,da se znak zapiše v delovni register movwf INDF ;v navidezni register smo vpisali delovni register incf FSR,1 ;poveča za ena incf FSR,1 decf znak,1 decf stevec,1 ;zmanjša števec za ena movlw 0x00 subwf stevec ;odšteje delovni register minus file register btfss STATUS, 2 ;testira v statusnem registru ničelno zastavico goto vpis_ponav return end #include <p16f877a.inc> __config 0x3f7a cblock 0x20 stevec, znak, zacasna endc org 0x00 goto start org 0x05 start call vpis call primerjaj ponavljaj goto ponavljaj ; konec glavnega programa primerjaj movf 0x42 movwf zacasna movlw 0x20 subwf zacasna,0 btfss STATUS,C goto vpisB movlw 0x42 ;A movwf 0x30 return vpisB movlw 0x41 ;B movwf 0x30 return vpis movlw 0x40 movwf FSR movlw 0x09 movwf stevec movlw 0x39 movwf znak vpis_ponav movf znak,0 ;0 pomeni,da se znak zapiše v delovni register movwf INDF ;v navidezni register smo vpisali delovni register incf FSR,1 ;poveča za ena incf FSR,1 decf znak,1 decf stevec,1 ;zmanjša števec za ena movlw 0x00 subwf stevec ;odšteje delovni register minus file register btfss STATUS, 2 ;testira v statusnem registru ničelno zastavico goto vpis_ponav return end
Highlag ::
Nič posebnega. Malo bitke šibajo sem ter tja. Ničesar pa ne servirajo ven iz čipa, tako da nimajo nobene uporabne funkcije.
Pa napiše se asembler če že sprašuješ o programskih jezikih.
Pa napiše se asembler če že sprašuješ o programskih jezikih.
Never trust a computer you can't throw out a window
aaaaa93 ::
mplab ide v8.8
Ne ne razumem predvsem tega zadnjega kjer so komentarji zraven je zelo čudno.
Ne ne razumem predvsem tega zadnjega kjer so komentarji zraven je zelo čudno.
aaaaa93 ::
Zanima me pedvsem kje vpisuješ razne stvari notri recimo da na neki lokaciji prešteješ nekaj in greš na drugo lokacijo kje to vidiš, zadnjega pa ne razumem nič.
Potem imam teoretično vprašanje kaj so zastavice.
Potem imam teoretično vprašanje kaj so zastavice.
Highlag ::
Ja asembler od microchipa je relativno enostaven. Mislim, da ima samo 36 ukazov. So zelo intuitivno izbrani, je pa res, da v eni uri ne boš naredil nič. Preberi si poglavje 13 v datasheetu, kjer so razloženi ukazi, podani so tudi primeri. Če se ne motim ima tudi mplab v helpu nekaj podobnega.
Never trust a computer you can't throw out a window
aaaaa93 ::
Ja asembler od microchipa je relativno enostaven. Mislim, da ima samo 36 ukazov. So zelo intuitivno izbrani, je pa res, da v eni uri ne boš naredil nič. Preberi si poglavje 13 v datasheetu, kjer so razloženi ukazi, podani so tudi primeri. Če se ne motim ima tudi mplab v helpu nekaj podobnega.
Jah naučit se morm do pondelka potem pa kokr vme in znam :D
aaaaa93 ::
Fantje ostale mi je uspel poštuderat tole mi pa ne rata
vpis b , ponavljaj , vpis ponavljaj mi ni lih jasn..
vpis b , ponavljaj , vpis ponavljaj mi ni lih jasn..
#include <p16f877a.inc> __config 0x3f7a cblock 0x20 stevec, znak, zacasna endc org 0x00 goto start org 0x05 start call vpis call primerjaj ponavljaj goto ponavljaj ; konec glavnega programa primerjaj movf 0x42 movwf zacasna movlw 0x20 subwf zacasna,0 btfss STATUS,C goto vpisB movlw 0x42 ;A movwf 0x30 return vpisB movlw 0x41 ;B movwf 0x30 return vpis movlw 0x40 movwf FSR movlw 0x09 movwf stevec movlw 0x39 movwf znak vpis_ponav movf znak,0 ;0 pomeni,da se znak zapiše v delovni register movwf INDF ;v navidezni register smo vpisali delovni register incf FSR,1 ;poveča za ena incf FSR,1 decf znak,1 decf stevec,1 ;zmanjša števec za ena movlw 0x00 subwf stevec ;odšteje delovni register minus file register btfss STATUS, 2 ;testira v statusnem registru ničelno zastavico goto vpis_ponav return end
aaaaa93 ::
Uspel mi je poštuderat tale program dela tole:
prebere vrednost iz lokacije 0x42 in če je vrednost večja od 0x20 izpise na 0x30 'A' 0x41, če ne pa 'B'
Amapk ne dela prav kaj je narobe ;(( Neka semantična napaka je mi lahko kdo pomaga.
prebere vrednost iz lokacije 0x42 in če je vrednost večja od 0x20 izpise na 0x30 'A' 0x41, če ne pa 'B'
Amapk ne dela prav kaj je narobe ;(( Neka semantična napaka je mi lahko kdo pomaga.
Highlag ::
FSR je navidezni register za indirektno naslavljanje. Vse skupaj gre za pointerje na lokacije.
Never trust a computer you can't throw out a window
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | PIC18F4550 in ds18s20Oddelek: Elektrotehnika in elektronika | 1992 (1671) | snow |
» | programiranje PIC..c++ ali zbirnik?Oddelek: Programiranje | 1727 (1619) | Highlag |
» | programiranje procesorja (strani: 1 2 3 4 … 8 9 10 11 )Oddelek: Elektrotehnika in elektronika | 36648 (26049) | icek |
» | PIC 16f84A - utripanjeOddelek: Elektrotehnika in elektronika | 2217 (2017) | ql000 |
» | ideja: koda za razne mikrokontrolerje na enem mestuOddelek: Elektrotehnika in elektronika | 3694 (3171) | neoto |