hier kurz eine demo mit fastavr , mit asm als sub und wert einlesen als zahl , weiterhin eine sub und wert einlesen als übergebene variable.
hier sieht man auch, wie klar die programmierdisziplin ist.
es wird die gleiche disziplin verlangt wie bei winavr-c, darum ist fastavr-basic auch genause schnell wie winavr-c, wie ich festgestellt habe.
man braucht nur einmal den asm-code gegenüberstellen. fast kein unterschied.
mfg pebisoft

Code:
$Device= m16      
$Stack = 32      
$Clock = 8  
$Baud  = 19200
$Source= On   

Dim wert As Byte
Dim wert_adr As Word
Dim wert_1 As Byte
Dim wert_adr_1 As Word

Declare Sub test()
Declare Sub test_1()

wert_adr=VarPtr(wert) ' adr der variable im sram
wert_adr_1=VarPtr(wert_1)

wert_1=123 

Do

test()
Print wert
WaitMs 250

test_1()
Print wert
WaitMs 250

Loop

End

' können auch in einer sub declariert werden
$Asm
.def pebi_1=r24 
$EndAsm

' zahl 77 direkt einlesen
Sub test()
$Asm	
	ldi    pebi_1,77 
	STS wert, pebi_1 
$EndAsm	
End Sub

' wert_1 als variable einlesen
Sub test_1()
$Asm
	lds   pebi_1,wert_1
	STS wert, pebi_1
$EndAsm
End Sub