Die arithmetischen Operationen laufen prinzipiell in folgender
Form ab:
A := A + Operand s
Hierbei ist die Konstruktion ":=" als "ergibt sich aus" zu in-
terpretieren: A ergibt sich aus A plus Operand s. Diese Be-
fehlsgruppe beeinflußt das Flagregister vollständig. Die Wir-
kungsweise der Flag-Bits läßt sich günstig bei Zahlenbereichs-
überschreitungen nach Ausführung der Operationen zeigen:
Beispiel:
A:= -128
ADD B
B = 127
A alt
= 1000 0000
+s
= 0111 1111
-------------------------------------------
A alt+s = 1111 1111
CY-Flag
neu
= 0
Z neu
= 0
-------------------------------------------
A neu
= 1111 1111
Beim
Überlauf
Addition ist falsch.
Für die Doppelbytearithmetik gilt mit gewissen Besonderheiten
das oben genannte.
Befehls-
Maschinen-
zähler
kode
--------------------------------------------------------------
1000
09
1001
ED 7A
1003
19
1004
DD 09
Falls bei der ADD-Operation ein Überlauf entsteht, wird das
Carry-Flag gesetzt (auf "1"). Bei ADC und SBC wird das Flagre-
gister vollständig neu bestimmt. Anwendungsgebiet dieser Be-
fehlsgruppe ist insbesondere die sogenannte Adreßarithmetik,
d.h. wenn mit Adressen gerechnet wird.
;(B=127,-128,-127)
B = -128
1000 0000
1000 0000
10000 0000
1
1
0000 0000
wird
das
CY-Flag=1,
Quellkode
ADD HL,BC
ADC HL,SP
SBC HL,DE
ADD IX,BC
B = -129
1000 0000
1000 0001
10000 0001
1
0
0000 0001
d.
h.
Kommentar
;HL:=HL+BC
;HL:=HL+SP+CY
45
das
Ergebnis
der