Zitat von
PicNick
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.
Lesezeichen