Forum: Mikrocontroller und Digitale Elektronik Bascom austricksen


von Gerhard (Gast)


Lesenswert?

Hallo Leute,

gibt es eine Möglichkeit den Bascom Compiler zu veranlassen
z.B. die Register R16 R17 R18 und R19 beim compilieren
nicht zu benutzen.

Gruss Gerhard

von crazy horse (Gast)


Lesenswert?

glaube ich nicht.
Warum willst du das haben?

von Gerhard (Gast)


Lesenswert?

Hi,

berechtigte Frage.
Hab mir in letzter Zeit einen etwas eigenartigen Programmierstil
angewöhnt.
Schreibe meine Programme erstmal in Bascom.
Das geht recht flott und man hat schnell mal ein lauffähiges
"Grundgerüst".
Sind nun zeitkritische Sachen drinn so hab ich die dann
immer auf ASM Code innerhalb Bascom umgeschrieben.
D.h. im AVR Studio den Disassembler benutzt und mal
geschaut was Bascom so mit dem Code macht.
Soweit so gut. Nun bin ich jedoch an die Grenzen gestoßen.
Jetzt wäre es natürlich hilfreich ein paar unbenutzte Register zu
haben.

Gruss Gerhard

von Florian Pfanner (Gast)


Lesenswert?

Kannst du die Register nicht im Stack oder im RAM zwischenspeichern? -
Der Compiler macht das doch auch.

Gruß, Florian

von guenter (Gast)


Lesenswert?

Hallo Gerhard

AVR-Studio - Dissassembler ???

Wie finde ich den ??

Ich verwende derzeit noch Vers. 3.56


Danke im Voraus


Günter

von Gerhard (Gast)


Lesenswert?

Hi,

@ Guenter , das geht mit AVR Studi 4.00

@ Florian , die Register werden in der Interruptroutine verändert
da kommt dann bei einer Long-Variablen schon eine Menge (unnötiger)
Code zusammen. Wenns richtig flott sein soll , möchte ich das eben
vermeiden.

Encoder_0:
push r16
push r17
push r18
push r19
push r26
LDI     R26,$0060
LD      R16,X+
LD      R17,X+
LD      R18,X+
LD      R19,X
'hier wird was an den Registern gemacht
ST  X,R19
ST  -X,R18
ST  -X,R17
ST  -X,R16
pop r26
pop r19
pop r18
pop r17
pop r16

Gruss Gerhard

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.