Herunterladen Diese Seite drucken

Sharp mz-800 Systemhandbuch Seite 150

Holtkötter

Werbung

Party/Overflow Flag
Dies Flag wird in einen bestimmten Zustand gebracht, abhängig von der ausgeführten Operation. Bei arithmetischen
Operationen, zeigt das Flag einen Überlauf an, wenn das Ergebnis im Akku den maximal zulässigen Wert von (+ 127) übertrifft
oder den minimalen Wert von (-128) unterschreitet. Diese Überlaufbedingung kann über das Vorzeichenbit (sign-bit) der
Operanden geprüft werden.
Bei der Addition können Operanden mit unterschiedlichem Vorzeichen nie einen Überlauf erzeugen. Addiert man dagegen
Operanden gleichen Verzeichnens und das Ergebins hat ein anderes Vorzeichen, so ist ein Überlauf eingetreten.
Beispiel:
+ 120 = 0111 1000 erster Summand
+ 105 = 011 O 1001 zweiter Summand
+225"' 1110 0001 (-97) Summe
Die Summe beider Zahlen übertrifft+ 127 und das Ergebnis der Addition ist eine negative Zahl (-97), was falsch ist. Daher ist das
Overflow-Flag gesetzt.
Bei Subtraktionen kann ein Überlauf nur eintreten, wenn die Operanden unterschiedliche Vorzeichen haben. Operanden
gleichen Vorzeichens können nie einen Überlauf erzeugen.
Beispiel: + 127 0111 1111 Minünd
(:)_: __
~~--~-~~?
__
?.?_~?.-~-~~~~~-~end
+191 10111111 (-63)Differenz
Die Vorzeichen von Minünd und Differenz sind verschieden, so dass sich ein falsches Ergebnis ergibt. Folglich ist das Overflow-
Flag gesetzt.
Eine andere Methode den Überlauf zu erkennen, liegt darin einen Übertrag hinein, aber nicht heraus oder heraus, aber nicht
hinein, so liegt ein Überlauf vor.
Das Flag wird auch bei logischen- oder Rotationsoperationen gebraucht, um die Parität des Ergebnisses anzuzeigen. Es
werden die Anzahl der "1" in einem Byte gezählt. Ist die Anzahl ungerade (ODD Parity), wird P=O angezeigt, ist sie gerade (EVEN
Parity), wird P=1 angezeigt.
Bei Suchinstruktionen (CPl,CPIJJR,CPD,CPDR) und Blockverschiebeinstruktionen (LDl,LDIR,LDD,LDDR) gibt das PN-Flag
den Status des Bytezählregisters (BC) wieder. Wenn beim Herunterzählen die Null erreicht wird, wird das Flag auf
"O"
zurückgesetzt, sonst ist das Flag auf
"1
".
Bei LD A,I und LD A,R wird das PN-Flag gesetzt nach dem Inhalt des lnterrupt-enable-Flipflop (1 FF2) zwecks speichern oder
prüfen. Wird ein Byte von einem l/0-Gerät eingegeben, IN r.(C), gibt das Flag die Parität der Daten
an.
Half-Carry-Flag
Das Half-Carry-Flag wird gesetzt oder zurückgesetzt, je nachdem ob ein Übertrag oder ein "Borgen" zwischen Bit 3 und 4 bei 8-
Bit arithmetischen Operationen auftritt. Dies Flag wird genutzt bei der Dezimalanpassung des Akkumulators (DAA) um ein
richtiges Resultat bei der BCD Addition oder Subtraktion zu erhalten. Das H-Flag wird "1" oder "O" sein, wenn folgendes gilt:
H
Additition
Subtraktion
1
Es ist ein Carry
~on
Bit 3
Es ist kein Borrow von
7U
Bit
.4
Bit4
Es ist kein Carry von Bit 3
Es ist ein Borrow von
0
Bit4
Das Slgn-Flag
Das Sign-Flag speichert den Stitus des höherwertigen Bit des Akkumulator (Bit 7). Führt der Z-80
Vorzeichenbeftet arithmetische Operationen aus, so wird das am Zweierkomplement notiert und
durchgeführt. Eine positive Zahl erkennt man an der "O" in Bit 7, eine negative durch die "1" in Bit 7. Das
binäre Requivalent der Zahlengrässe wird in den Bits 0 bis 6 im Wert von 0bis+127 gespeichert. Eine
negative Zahl wird durch das Zweierkomplement der entsprechenden positiven Zahl dargestellt. Der
Wertebereich geht von -1 bis-128.
Bei der Eingabe von Daten von einem 1/0-Gerät in ein Register, IN r, (C) gibt das S-Flag an, ob die Daten
negativ (S-1) oder positiv (S=O) sind.
139

Werbung

loading