Was ist ein Unterprogramm?
3 Antworten
Früher so um 1957 gab es nur prozedurale und lineare Programmiersprachen aber bereits hier sind Unterprogramme (Subroutienen) in Mode gewesen, weil sie den gefürchteten Spaghetticode vermeiden helfen (Unstrukturierter Quelltext der nur sehr mühsam zu warten [Erweitern/Ändern] ist).
In Basic wurde dazu der Befehl GoSub entwickelt um aus einer Stelle im Quelltext auf ein öfter verwendetes Stück Code zurückgreifen das aber ohne Goto zur gewünschten Zeilennummer findet, wobei der Interpreter gar nicht wissen konnte welche die Zeile war. Also hat man dem Programm intern einen Wegweiser zugewiesen.
Heruntergebrochen auf Assembler der JMP(Jump) Befehl der ein gutes Duzend Kathegorien aufweist, jenachdem welche Art von Jump benötigt wird.
Beispiel:
Befehl: Jxxx Adr (Jump on Condition)
Bedingter Sprung zur Zieladresse
Befehl: Sprung wenn... Jump if ... Geprüfte Statusflags:
JA/JNBE größer / nicht-kleiner-gleich CF = 0 und ZF = 0
above / not-below-equal
JAE/JNB größer-gleich / nicht-kleiner CF = 0
above-equal / not-below
JB/JNAE kleiner / nicht-größer-gleich CF = 1
below / not-above-equal
JBE/JNA kleiner-gleich / nicht-größer CF = 1 oder ZF = 1
below-equal / not-equal
JE/JZ gleich / null ZF = 1
equal / zero
JG/JNLE größer / nicht-kleiner-gleich ZF = 0
greater / not-less-equal
JGE/JNL größer-gleich / nicht-kleiner SF gleich OF
greater-equal / not-less
JL/JNGE kleiner / nicht-größer-gleich SF ungleich OF
less / not-greater-equal
JLE/JNG kleiner-gleich / nicht-größer ZF = 1
less-equal / not-greater
JNE/JNZ nicht-gleich / nicht-null ZF = 0
not-equal / not-zero
JC Carry Flag (CF) gesetzt CF = 1
Carry
JNC Carry Flag (CF) nicht gesetzt CF = 0
not-Carry
JNP/JPO keine-Parität / Parität ungerade PF = 0
not-Parity / Parity-odd
JNO kein überlauf OF = 0
not-Overflow
JNS kein Vorzeichen (positiv) SF = 0
not-Sign
JO überlauf OF = 1
Overflow
JP/JPE Parität / Parität-gerade PF = 1
Parity / Parity-even
In Hochsprachen findet man sowas nicht.
Heute der Tage ist OOP (Bing) der Standard, wie Unterprogramme verschachtelt werden, ohne eine Funktion zu benötigen, jedoch Methoden und das ist ein gravierender Unterschied.
Me hope this makes clear me is the asshole who make your game so hard.
·gerid3d·
c my site, check all subdomains, if under trafic try 20min later
viele programme laufen nicht linear ab. das bedeutet, dass bestimmte operationen innerhalb eines programmes quasi ein eigenes kleines programm sind.
man kann sich das wie bei einer homepage vorstellen, wo die page quasi ja auch aus mehreren seiten besteht.
lg, anna
Eine Programmfunktion (im Prinzip ein Programm), das nicht eigenständig auf dem Computer ablaufen kann, sondern noch ein übergesltülptes Rahmenprogramm benötigt.