Hallo Ruedi

Weis jetzt nicht mehr so genau.
Ich galube ich hatte das mit Functionen probiert.

Habe mal schnell einen Code zusammengeschrieben..

Der braucht 40 Byte mehr pro Functions aufruf als das gleiche mit Gosub:

Code:
 ' 8MHz Quarz
 ' LCD auf Port B ,
 '
'  $sim

$regfile = "m16def.dat"
$crystal = 8000000                                          ' (RC Intern)
$baud = 9600

$hwstack = 256
$swstack = 256
$framesize = 256


'---Config für LCD Port B ----------
Config Lcd = 20 * 4
Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.5 , Db6 = Portb.3 , Db7 = Portb.4 , Rs = Portb.7 , E = Portb.6
Config Lcdbus = 4
Config Lcdmode = Port
Cursor On
'-----------------------------------


Dim A As Byte
Dim B As Byte

B = 10

Declare Function Test(byval C As Byte)as Byte


Do
A = Test(b)                                       '  500Byte Programmspeicher
A = Test(b)                                       '+ 40Byte
A = Test(b)                                       '+ 40Byte
Loop
End


Function Test(byval C As Byte) As Byte
C = 10

End Function

Und das Gleiche hier mit Gosub:

Code:
' 8MHz Quarz
 ' LCD auf Port B ,
 '
'  $sim

$regfile = "m16def.dat"
$crystal = 8000000                                          ' (RC Intern)
$baud = 9600

$hwstack = 256
$swstack = 256
$framesize = 256


'---Config für LCD Port B ----------
Config Lcd = 20 * 4
Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.5 , Db6 = Portb.3 , Db7 = Portb.4 , Rs = Portb.7 , E = Portb.6
Config Lcdbus = 4
Config Lcdmode = Port
Cursor On
'-----------------------------------

'-----------------------------

Dim A As Byte
Dim B As Byte
Dim C As Byte

B = 10


Do

Gosub Test                                                  '454 Byte
A = C

Gosub Test                                                  '466 Byte
A = C

Gosub Test                                                  '478 Byte
A = C

Loop
End

Test:
C = 10
Return

'-----------------------------
Bei 3 Aufrufen mit 478Byte Programmspeicher.