Zitat Zitat von PicNick Beitrag anzeigen
Bascom ist nicht der allergrösste Optimierer.
Trifft hier zumindest was den Speicherverbrauch betrifft nicht zu.
Wenn die Zielvariable ("Empf") ein Word ist, verwendet Bascom eigentlich generell die
LD XL, lbyte ( ..)
LD XH, hbyte( ..)
sequenz, auch wenn das im Einzelfall gar nicht notwendig wäre
Vom Flashverbrauch her macht's keinen Unterschied, es sind nur mehr Zyklen, ich denke wir sprechen hier über Speicherverbrauch.
Code:
LDS   Rxx,   {Word_Var_Adr_LB}   <-- 4 Bytes, 1 Zyklus
LDS   Ryy,   {Word_Var_Adr_HB}   <-- 4 Bytes, 1 Zyklus
' 8 Bytes, 2 Zyklen
Code:
LDI   XL,   lbyte(Word_Var_Adr_LB)   <-- 2 Bytes, 1 Zyklus
LDI   XH,   hbyte(Word_Var_Adr_LB)   <-- 2 Bytes, 1 Zyklus
LD   Rxx,   X+                       <-- 2 Bytes, 2 Zyklen
LD   Ryy,   X                        <-- 2 Bytes, 1 Zyklus
' 8 Bytes, 5 Zyklen
Ansonsten wär's interessant, woraus das von Chris gezeigte Assemblerlisting erzeugt wurde, meine Version 2.0.7.3 baut aus:
Code:
Dim A As Byte , B As Byte
B = A
das hier:
Code:
9:        B = A 
LDS       R24,0x0060
9:        B = A 
STS       0x0061,R24
Egal ob mit oder ohne eingeschaltete Optimierung, und das ist einwandfrei so.