Forum: Mikrocontroller und Digitale Elektronik Funktionen


von schuster (Gast)


Lesenswert?

Gibt es bei Assembler, Funktionen, aus evtl. ähnl wie in C ?
Rückgabewert ist nicht umbedingt erforderlich aber ich halte es für
verschwendung den ich 4 reihen code immer wieder wenn ich sie brauche
neu hinschreiben muß ! ?

von Khani (Gast)


Lesenswert?

Hi,

also a) wenn es nur 4 Zeilen sind - copy und paste hat da schon immer
funktioniert und ist auch schneller am Ende, oder willst Du jedes mal
einen Sprung, Register sichern und einen Rücksprung ?!
b) Makros tun auch gute Dienste, die ersetzen dann den Code beim
Kompilieren
c) Man kann natürlich Funktionen erstellen. push parameters on stack,
jump to label, pop parameters from stack (muss man evtl. mit der
Rücksprungadresse aufpassen, sonst ist die "fortgepoppt"), return
from service.

Ist etwas umständlich, bei großen Funktionen aber nützlich.

MfG, Khani

von Aleksej (Gast)


Lesenswert?

Wenn es um AVR-Assembler geht, wie ich es verstehe, dann könntest du
prinzipiell das gleiche mit rcall oder call schaffen, lese die
datasheets noch mal durch. Bei den anderen MCU's sieht es genau so aus
(acall bei 8051 z.B.)

von franz (Gast)


Lesenswert?

Es gibt eine Menge von Programmschnippseln hier im Forum,
die mit Subroutinen arbeiten. Schau mal ins Tutorial (z.B. UART)

Grüße,
Peter

von Matthias (Gast)


Lesenswert?

Hi

Parameter übergibt man nur über den Stack wenns unbedingt sein muß.
Besser ist das übergeben in Registern oder vorher vereinbarten
Speicherstellen.

Matthias

von schuster (Gast)


Lesenswert?

oki danke mit call habe ich es super hinbekommen , kommt auch sehr na an
c ran wenn man mit registern arbeitet ! Thx.

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.