Rechtsverschiebung um vier Dualstellen
RRD
; der Befehl wirkt ebenfalls nur zwischen A und (HL)
A:
4.3.9 Sprungbefehle
Grundsätzlich werden bedingte und unbedingte Sprünge unter-
schieden.
- Unbedingte Sprünge:
Bei Erkennen des Sprungbefehls wird vom Prozessor der Befehls-
zähler entweder mit der im Adreßteil des Befehl angegebenen
Sprungadresse geladen (absolute Sprungadresse) oder der Be-
fehlszähler
wird
Sprungweite). Die Konstante e wird im Befehl mit angegeben und
liegt
im
Wertebereich
absoluten Sprungadresse kann indirekt oder indiziert erfolgen.
Relative
Sprungbefehle
benötigen
weniger
Programmierung ohne Assembler schwer zu beherrschen.
Allgemein:
JMP sadr
; Befehlszähler PC nimmt den Wert 'sadr' an.
JR e
; Befehlszähler PC wird um den Wert e verändert.
PC:=PC+e (Vorwärts- und Rückwärtssprünge sind
möglich)
JMP (xx)
; Befehlszähler PC nimmt den Wert an, der im Regi-
sterpaar xx enthalten ist.
Registerpaare 'xx' = HL, IX, IY
Die Berechnung der Sprungweite ist mit entsprechender Sorgfalt
durchzuführen.
Die Sprungweite ist eine Differenz von Adressen: Zieladresse
minus die Adresse des Befehls, der dem Sprungbefehl folgt.
Dabei ist zu beachten, daß ein Relativsprungbefehl immer 2
Byte lang ist. Von der CPU wird prinzipiell nach dem Lesen des
Befehls der PC auf den Beginn des physisch nächsten, abzuar-
beitenden Befehls gestellt, es sei denn, bei der Abarbeitung
des eben gelesenen Befehls stellt sich heraus, daß der PC
geändert
werden
beziehen sich dann dabei auf die Adresse des nachfolgenden
Befehls.
Dieser
unbedingt zu beachten.
7
4|3
0
um
eine
Konstante
von
bzw.
Speicherraum,
muß
(bedingter
Umstand
ist
(HL):
7
4|3
e
verändert
-128
<=
127.
indirekt
adressierte
sind
aber
Sprung).
bei
der
Sprungweitenberechnung
51
0
(relative
Die
Angabe
der
Sprünge
bei
manueller
Relativsprünge