Zahlenbeispiel: Addition zweier zweistelliger Dezimalzahlen
A:
1001
B:
0011
---------------------------------------
A:=A+B:
1101
CY=0
DAA: +06H
0000
+60H
0110
---------------------------------------
A:
0011
CY=1
Ergebnis: Es entsteht eine dreistellige BCD-Zahl, die sich zu
zwei Stellen aus dem A-Registerinhalt und als dritte
Stelle aus dem Carry-Bit (CY=1) ergibt:
( CY, H(A), N(A))=(138)
Auf die anderen Hilfsoperationen soll hier nicht weiter einge-
gangen werden. Ihre Bezeichnung erläutert die Funktion genü-
gend.
4.3.7. Befehle zur Bit-Manipulation
Diese Befehlsgruppe erlaubt den Einzelbit-Test, das definierte
Setzen bzw. Rücksetzen ausgewählter Bits von Registern des
Prozessors oder der durch den Inhalt der Register HL, IX und
IY adressierten Speicherplätze.
Der Aufbau und die Funktion eines Bit-Test-Befehls läßt sich
wie folgt allgemein beschreiben:
BIT i,s
Operanden 's' = A, B, C, D, E H, L, (HL), (IX+d), (IY+d)
Befehle zum Rücksetzen einzelner Bits haben den Aufbau 'RES
i,s' und Befehle zum Setzen 'SET i,s' . Sie beeinflussen keine
Flags. Mit dem Befehl 'RES 7,A' wird das Bit 7 des A-Registers
auf den Wert 0 gesetzt, mit 'SET 4,B' das Bit 4 auf den Wert
1.
4.3.8 Verschiebebefehle
Mit den Verschiebebefehlen erfolgt im entsprechenden Register
entweder
eine
Dualstelle, d. h. um ein Bit. Die Besonderheiten der verschie-
denen Verschiebebefehle gehen aus den Darstellungen der ein-
zelnen Befehle hervor.
A:=99, B:=39, A:=A+B ?
1001
= 99
1001
= 39
0010
= D2 falsch !!
H=1!
0110
= 38
0000
= 60
1000
= 38
H=0
= 138
;Bit-Test-Operation, Testergebnis ist über
Z-Flag auswertbar; Z:=1, wenn das Bit i des
0 <= i <= 7
Rechts-
oder
99
+39
Registers 's' =0 ist,
Z:=0, wenn das Bit i =1 ist
eine
Linksverschiebung
48
um
eine