Forum: Offtopic ASM Unterprogramm mit 2 Prametern und einen Rückgabewert


von micro1 (Gast)


Lesenswert?

1. Kann mir jemand beschreiben ob es möglich ist wie im Betreff
   geschrieben ein ASM Prorgramm zu schreiben?

2. Wie kann im ASM Unterprogramm auf die übergebenen Parmeter
zugegriffen werden?

3. Wie werden lokale Variablen des ASM Unterprogrammms vereinbart?

4. Warum ist die Prameterübergabe über Register ungünstig?

von Ulrich (Gast)


Lesenswert?

Eventuell solltest du lesen oder auf eine Hochsprache umsteigen ;-)

C kann das alles was du willst, in asm musst du selber mehr
machen.....

Aber ich will mal helfen:
1. Ja, allerdings ohne irgendwelche klammern in welche man die
parameter übergibt wie z.B. in C
2. In dem das Unterprogramm darauf zugreift, z.B. könnten die Parameter
im Stackstehen von wo aus sie ausgelesen werden....
3. vorhandene register werden auf den Stack verschoben und dann
inerhalb des Unterprogramms verwendet.
4. Also ich finde es nicht ungünstig...man kann die Parameterübergabe
aber auch per Stack machen. Besser bei vielen Parametern. Auch eine
übergabe per SRAM ist möglich.

von micro1 (Gast)


Lesenswert?

ICh schreibe in Hochsprache.
Das oben sind Prüfungsfragen

von Läubi (Gast)


Lesenswert?

Naja.... nachdenken hilft bei solchen Fragen, z.B. hat ja auf jedenfall
jede Funktion EINEN Rückgabewert... sot wäre es ja Sinnlos, eine
Funktion ist ja gerade dadurch definiert...
Frage 2 und 3 kannst du bestimmt beantworten wenn du mal nach dem
Aufbau und verwenung des Stacks suchst.
Und bei der lezten Aufgabe kannst du dir ja mal überlegen, warum das
ungünstig sein könnte, wenn du z.B. sagst, Register R1 und R2 haben
meinen Parameter, und dann ruf die Funktion mal rekursiv auf...
Wenns dumm läft, kommt bestenfalls was anderes raus als du erwarten
würdest...

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.