Hallo Siro,
[QUOTE=Siro;623797Mit dem erzeugten vermeintlich 400 Prozent langsameren Code kommt vielleicht doch vom Compiler selbst ?
Könnte natürlich sein. Sieht aber wirklich SEHR umständlich aus.
Das ist natürlich problematisch bei den 8 Bittern und dazu das Banking bei den PICs.[/QUOTE]

Wie Klebwax schon geschrieben hat:

C arbeitet hauptsächlich mit dem Stack: lokale Variablen und die Parameter bei Funktions-Aufrufen werden über den Stack übergeben.
Nun haben die 8-Bit PIC aber keinen Stack
Also muss man den Stack emulieren. Was andere CPUs mit einem einzigen Maschinenbefehl erledigen, muss man beim PIC aus mehreren Befehlen zusammenwürfeln.
Ein älterer BASIC-Dialekt, mit nur globalen Variablen. wäre da wesentlich effizienter umzusetzen.

Die Speicherarchitektur ist auch nicht gerade optimal. Durch das 12-Bit ROM wird beim Speichern von ASCII-Text Konstanten 1/3 verschwendet. Im Prinzip könnte man ASCII packen, was aber mehr Code für den Zugriff erzeugt.

Ein Freund, C Compilerentwickler bei IAR, bezeichnet solche CPUs als "brain demaged", dazu zählt er auch die 8051-Architektur.

MfG Peter(TOO)