Hallo,
Ich habe neues zu berichten und zwar habe ich die Asurolib PrintInt etwas verbesert.
Ich denke das Ergebnis läßt sich sehen:
Ein Minimalprogramm mit der originalen PrintInt kompiliert
ErgebnisCode:#include <asuro.h> int main(void) { Init(); while(1) { //PrintChar(x); PrintInt(-1000); } return 0; }
Dann die geänderte PrintInt, die ich zwar noch PrintChar nenne, sie schluckt aber locker intsection size addr
.text 1160 0
.bss 18 8388704
ErgebnisCode:#include <asuro.h> void PrintChar(int x) { int b=0; if (x < 0) { SerWrite('-',1); x = -x; } if (x >= 10) { while (x >= 10) { b++; x -=10; } PrintChar(b); } SerWrite(x + '0',1); } int main(void) { Init(); while(1) { PrintChar(-1000); } return 0; }
Ersparnis von 296 Bytes !section size addr
.text 864 0
.bss 18 8388704
Meine Funktion benutzt zwar Rekursion, was den Stack etwas belastet, aber ich denke, es ist nicht so schlimm oder ?
Gruß Sebastian







Zitieren

Lesezeichen