- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 3 von 3 ErsteErste 123
Ergebnis 21 bis 22 von 22

Thema: Parameterübergabe bei Inline-Assembler

  1. #21
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.802
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Zitat Zitat von ogni42
    ...Ist als Assembler Code schon erheblich länger...
    Hat es einen besonderen Grund, daß du avr-gcc deinen C-Code nicht optimieren lässt (zumindest sieht der erzeugte asm stark danach aus)?
    Disclaimer: none. Sue me.

  2. #22
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    21.10.2005
    Ort
    Erde
    Alter
    57
    Beiträge
    1.195
    Doch, das lässt er natürlich Habe den C code mal in eine eigene Funktion gepackt:
    Code:
    uint16_t test( uint16_t op1, uint16_t op2, uint16_t op3)
    {
    	uint16_t result;
    
       	result = op1*op2+op3; // <- Das hier
    
    	return result;
    }
    Da kommt bei mir mit -O2 folgende Assemblercode raus:
    Code:
    test:
    .LFB3:
    .LM7:
    /* prologue: frame size=0 */
    /* prologue end (size=0) */
    	movw r18,r22
    .LM8:
    	mul r24,r18
    	movw r22,r0
    	mul r24,r19
    	add r23,r0
    	mul r25,r18
    	add r23,r0
    	clr r1
    	movw r24,r22
    .LM9:
    	add r24,r20
    	adc r25,r21
    /* epilogue: frame size=0 */
    	ret
    /* epilogue end (size=1) */
    Ist also immer noch erheblich langsamer als die Fixpunktimplementierung. Kommt hinzu, dass, wie bereits gesagt, das Clipping in C nicht so einfach zu realisieren ist.

Seite 3 von 3 ErsteErste 123

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen