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 Bild  
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)