» »

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

keworkian ::

A ne znaš brat al kaj? Vse ti piše kaj naredijo programi
Obscenities in B-Flat

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.
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.

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.

ERGY ::

Poglej si datasheet

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 ::

Highlag je izjavil:

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..
#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.

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

aaaaa93 ::

Zakaj je pa upraben ta program..


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

PIC18F4550 in ds18s20

Oddelek: Elektrotehnika in elektronika
191992 (1671) snow
»

programiranje PIC..c++ ali zbirnik?

Oddelek: Programiranje
61723 (1615) Highlag
»

programiranje procesorja (strani: 1 2 3 48 9 10 11 )

Oddelek: Elektrotehnika in elektronika
50536630 (26031) icek
»

PIC 16f84A - utripanje

Oddelek: Elektrotehnika in elektronika
222213 (2013) ql000
»

ideja: koda za razne mikrokontrolerje na enem mestu

Oddelek: Elektrotehnika in elektronika
73694 (3171) neoto

Več podobnih tem