Assembler-Kurs Teil 4 ---------------------
Heute behandeln wir zwei neue Assembler- befehle und die Erstellung eines Pro- grammablaufplans. Auf Diskette wird außerdem noch die Zeropage-Adressierung erklärt.
JMP (JuMP to adress) --------------------
Zuletzt wurde die bedingten Verzweigung erläutert. Der JMP-Befehl hängt nich von solchen Bedingungen ab. Wenn das Pro- gramm diesen Befehl erreicht, wird sofort zur angegebenen Adresse verzweigt. Beispiel: JMP $2000 springt zur Adresse $2000 Sicher haben Sie schon die Ähnlichkeit mit der GOTO-Anweisung in BASIC erkannt. Die SPrungadresse des JMP-Befehls kann auch in indirekter Form vorliegen, z.B.: JMP ($2000). Eine Hexadezimalzahl besteht immer aus einem höherwertigen Byte (Bei der Zahl $2000) ist dies $20) und einem nieder- wertigen Byte (hier: $00). Das höher- wertige Byte entspricht also den ersten beiden Stellen, das niederwertige den letzten beiden Stellen der Hex-zahl. Bei dem letzten Beispiel wird nun nicht zur Adresse $2000 verzweigt. Stattdessen werden die Speicherstellen $2000 und $2001 als "Sprungvektoren" behandelt. Enthält z.B. die Adresse $2000 das Byte $05 (niederwertiges Byte) und $2001 den Wert $10 (höherwertiges Byte), so springt das Programm nach $1005. Diese Adressierungsart des JMP-Befehls wird jedoch nur selten verwendet.
JSR (Jump to SubRoutine) ------------------------
Ein Unterprogramm ist eine selbst- ständige Gruppe von Befehlen, die vom Hauptprogramm getrennt sind. Nach Aufruf des Hauptprogramms wird es abgearbeitet, bis ein JSR-Befehl erreicht wird (z.B.: JSR $2000). Nun wird in das Unterprogramm verzweigt. Es werden jetzt alle Befehle ausgeführt, bis das Programm auf ein RTS trifft. Daraufhin wird in das Hauptprogramm zurückgesprungen. Selbstverständlich kann auch aus dem Unterprogramm ein weiteres Unterprogramm aufgerufen werden (Verschachtelung von Unterprogrammen). Die Kombination JSR...RTS enspricht unseren bekannten BASIC-Befehlen GOSUB...RETURN. Der Vorteil eines Unterprogramms liegt darin, daß es von beliebig vielen Stellen aus dem Hauptprogramm aufgerufen werden kann. So müssen mehrmals benötigte Routinen nicht immer wieder neu geschrieben werden. Dadurch fällt weniger Programmierarbeit an und es wird Speicherplatz gespart. (rt)