Nascom Journal

  

Juli/August 1982 · Ausgabe 7/8


NASCOMPL: 
Software-Tip: 
 
Nehmen Sie sich einen 
Tag Urlaub, wenn Sie 
den Zauberwürfel 
eintippen wollen!

Fortsetzung von Seite 39 (Einsteiger)

der PUSH- Befehle beträchtlichen Umfang erreichen kann, ist auch der Grund, weshalb man Programme im Speicher ab C80 nicht beliebig nach oben ausdehnen kann. Irgendwo im Bereich ab F00 (meist FE0 oder ähnlich) wird das Programm dann vom herabwachsenden Stack überschrieben und spielt verrückt.

Allgemein wäre zu sagen: PUSH und POP – sehr brauchbare Befehle, die aber genau beobachtet sein wollen.

Als Abschluß vielleicht noch eine interessante Anwendung. Unter bestimmten Bedingungen wird ein gepushter Wert nicht mehr gebraucht; dann poppt man ihn einfach in ein nicht benötigtes Register. (Im Quelltext liest man dann oft als Kommentar „Throw away HL“, was bedeutet, daß man den Wert von HL auf dem Stack „wegwirft“. Als Beispiel:

Sie rufen ein Unterprogramm auf, das wiederum ein Unterprogramm aufruft. Normalerweise würde das zweite Unterprogramm am Ende wieder zum ersten zurückkehren (seine Rücksprungadresse steht ja auf dem Stack). Nehmen wir an, eine Bedingung sei erfüllt, die einen Rücksprung ins Hauptprogramm notwendig macht. Dann löschen Sie einfach die aktuelle Adresse durch z.B. POP BC (Throw away Return Address). Beim Return des zweiten Unterprogramms erfolgt nun der Sprung ins Hauptprogramm, da nun die Rücksprungadresse des ersten Unterprogramms oben auf dem Stack liegt.

Dies klingt beim ersten Durchlesen alles ein wenig kompliziert. Wenn Sie Fragen haben, wenden Sie sich vertrauensvoll ans Journal. Als nächstes Thema müßten nun die Block-Transfer- Befehle folgen. Wer wagt es?

G.Böhm

-Verkaufe ZEAP 2.0 auf original EPROMs 4x 2708   DM 130 .–
TINI BASIC ebenfalls origin. 2x 2708   DM 40 .–
-Suche CLD- oder MKS- Floppy
-Suche Pascal Interessenten zum Kauf der EPROM-Version des BLS- PASCALs
-Kontakt: Jürgen Weiermann _____/____
__ ________ __ (ab 18 h)
____ ________ _
Seite 43 von 60