@Mega128
Es mag schon sein, dass es Compiler gibt, welche mit 3 CPU-Registern auskommen müssen. Der Unterschied zwischen einer CPU mit 3 oder 32 Registern wie beim AVR ist der, dass sich mit 32 Registern ein wesentlich effektiverer Code hinsichtlich Größe und Laufzeit erstellen lässt.
Es macht glaube ich auch für einen Compiler keinen Sinn, auf Kosten von Codegröße und Geschwindigkeit einige Register freizuhalten, zumal dieses Feature der freien Register nur von einem kleinen Prozentsatz der Anwender wirklich genutzt würde. Die Masse der Anwender hätte dann mit einem nicht so effektiven Code zu leben.
Dass keine Register vom Compiler freigehalten werden ist meines Erachtens keine Manko für BASCOM, sondern die Folge einer effektiven Codierung.
Zu den Register r28 und r29 (SoftstackPointer) möchte ich noch anmerken, dass dieser nicht nur in SUB und Functions benutzt wird, sondern auch in den trigonometrischen Funktionen für SINGLE und DOUBLE, wo Berechnungszwischenergebnisse auf den FRAME gespeichert werden und die Pointer zu diesen Werten im SoftStackpointer (r28,29) verwaltet werden.
Lesezeichen