Forum: Mikrocontroller und Digitale Elektronik avr-studio


von Tom Ander (Gast)


Lesenswert?

Servus,

in der Hilfe-Datei vom AVR-Studio 3.5 sind einige Befehle beschrieben,
mit denen man Register muliplizieren oder ähnliches mit nur einer Zeile
kann.

z.B. r30, label*2

so stehts drin und dies dauert 13 Zyklen.
label = Name von Unterprogramm, aber von welchen?

bei mir funktioniert es nicht.
Kann mir jemand das erklären und ein funktionierendes kleines Programm
schreiben.

Dankeschön
Tom

von crazy horse (Gast)


Lesenswert?

das geht nicht. Was du meinst, ist eigentlich eine Konstante, die
während der Asseblierung in eine Zahl aufgelöst wird. Das berechnet
also der Assembler und nicht der MC.
heisst es beispielsweise:

ldi r30, low (0x1234*2)
ldi r31, high (0x1234*2)

wird daraus:
ldi r30, 0x68
ldi r31, 0x24
und das steht dann auch im Prozessor.

von Tom (Gast)


Lesenswert?

Danke für deine Hilfe,

hab ich mir schon gedacht,

dann muss ich mir halt Unterroutinen schreiben.

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.