Sprünge, Verzweigungen und Schleifen
Unbedingte und bedingte Sprünge für Verzweigungen und Schleifen
Praktisch jede sinnvolle Maschinensprache muss nicht nur Befehle zum Rechnen mitbringen, sondern auch Befehle, die auf den Ablauf des Programms selbst Einfluss nehmen können.
- Unbedingte Sprünge sorgen dafür, dass das Programm nicht mit dem Befehl an der nächsten Stelle des Speichers fortgesetzt wird, sondern mit einem Befehl an einer anderen Stelle des Speichers.
- Bedingte Sprünge sind notwendig, um innerhalb eines Programms Entscheidungen treffen zu können. Das können Verzweigungen sein (WENN - DANN - ANSONSTEN) oder auch Schleifen, die irgendwann auch einmal beendet werden müssen, wenn sie keine "Endlosschleifen" sein sollen.
Umsetzung in JOHNNY
In den Maschinensprachen wirklicher Prozessoren gibt es häufig eine Vielzahl von unbedingten und bedingten Sprungbefehlen. Bei JOHNNY sind die Möglichkeiten stark reduziert.
- Der Befehl
JMP (Adresse)
sorgt dafür, dass der Computer mit demjenigen Befehl fortfährt, der in der Speicherstelle der angegebenen Adresse codiert ist.
- Der Befehl
TST (Adresse)
bewirkt, dass der nächste Befehl dann (und nur dann) übersprungen wird, wenn die Speicherstelle der angegebenen Adresse den Wert 0 hat.
Durch Kombination der beiden Befehle lassen sich komplexere Entscheidungs- und Schleifenstrukturen realisieren.