function/gosub
Übersicht

hitokiriBetreff: function/gosub |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Da ich mich mal in Assembler reingelesen habe kam mir die Frage wie wohl ne Function übersetzt wird.
Gosub ist klar, ist einfach ein aufrufen eines subprozesses und dann ein return nach beenden. aber function kann ich mir nicht so wirklich vorstellen wie das auf assemblerebene anders als gosub gehandelt werden soll ausser der compiler schreibt jedesmal den ganzen block der function direkt in den code bzw handelt sie auf assemblerebene einfach mit einem jmp. |
||
morszeck |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Im Prinzip ist eine Function/EndFunction ähnlich einem Gosub/Return. Nur bei Gosub musst du keine Varialeln mitgeben oder diese global definieren, wie im Gegensatz zur einer Function. Auch werden alle lokalen Variabeln in einer Function nach der Beendinung gelöscht. | ||
hitokiri |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
also ist ne funktion auf assemblerebene ein "richtiger" private subprocess und gosub nur ein makro ? | ||
![]() |
Xaron |
![]() Antworten mit Zitat ![]() |
---|---|---|
Was ist denn ein private Subprocess (Java?)? Wenn Du meinst, dass da ein extra Prozeß oder Thread erzeugt wird, liegst Du falsch. Sorry, falls ich Dich da falsch verstehen sollte!
Bei einer Funktion wird halt etwas mehr auf dem Stack rumgeschmiert (lokale Variablen, etc.), was natürlich die Sache _etwas_ verlangsamt. Am Ende wird der Stack wieder aufgeräumt, was auch _etwas_ dauert. So lange man nicht mit Rekursion in zeitkritischen Bereichen arbeitet, sollte der Geschwindigkeitsverlust aber minimal sein. Gruß - Xaron |
||
Cerberus X - Monkey X Reloaded! |
morszeck |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hitokiri hat Folgendes geschrieben: also ist ne funktion auf assemblerebene ein "richtiger" private subprocess und gosub nur ein makro ?
Kann man so sagen... |
||
hitokiri |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
danke für die antworten morszeck und Xaron.
War lediglich eine Frage rein aus Interesse wie Assembler das übersetzt ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group