Label Zuweisung für Register xy in C unter GCC

#1388886
Lesenswert?

Siegfried Saueressig schrieb:

> Wie mache ich dieses in C ?

Das machst du vorzugsweise überhaupt nicht.

Rein technisch ist es möglich, wie grad beschrieben, aber das sollte man 
allenfalls machen, wenn man schon ein paar Jahre drinsteckt. Das Risiko, 
dass man sich dabei eine Zeitbombe einhandelt, ist erheblich. Auch diese 
r2-r7 sind nämlich keineswegs frei.
OP #1388898
Lesenswert?

Hallo,

Vorab mochte ich sagen, das ich mit " GCC" noch nicht gearbeitet habe.

Die Variable "zaehler" ist im SRAM an Adresse 0x008A angelegt.
Habe mir ein Teil im Disassembler angesehen. Dort finde ich immer wieder 
die Ragister 0, 1, 24, 25 die der Compiler benutzt.

Hier ein paar Zeilen aus dem disassember
217:      zaehler ++;
+0000035F:   9180008A  LDS     R24,0x008A       Load direct from data 
space
+00000361:   5F8F      SUBI    R24,0xFF         Subtract immediate
+00000362:   9380008A  STS     0x008A,R24       Store direct to data 
space

Wie hier zu sehen ist, macht der Compiler 3 Befehle für eine einfache 
erhöhung einer Variable. es würde doch reichen mit diesem "inc" Befehl.

Ich hoffe, das ich hier keinen Unsinn schreibe.

Gruß Siegfried

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren