Overflow - TN13

Direkt zum Seiteninhalt

Hauptmenü:

Auch die Bezeichnung „V-Flag“ kommt vor (OVerflow). Es ist das Äquivalent zum Carry-Flag – allerdings unter Einbeziehung von Vorzeichen. Man nennt dies „vorzeichenbehaftet“. Es wird beispielsweise gesetzt, wenn man zwei Zahlen gleichen Vorzeichens (=MSB) addiert und das Ergebnis ein anderes Vorzeichen aufweist.

Bei der 8-Bit-Addition 40h + 40h (64 + 64) ist das Ergebnis 80h, was vorzeichenlos 128 ist, vorzeichenbehaftet aber -128. In diesem Fall wird das Overflow-Flag gesetzt, nicht aber das Carry-Flag.

In Kombination mit dem Carry-Flag kann man Overflow und Underflow unterscheiden.
Ausgewertet wird es allerdings nur, bei einem Zweier-Komplement.
				Das Flag wird erst dann geändert, wenn eine Anweisung, die Einfluss darauf hat, es ändert. Der Benutzer wird im Regelfall auf die Statusflags nicht zugreifen, also auch nicht löschen.
				Die Flags werden von der ALU geändert (einzige Ausnahme natürlich das I-Flag, das sowieso eine ganz andere Aufgabe hat. Aus dem Programm heraus wird i.d.R. nur lesend zugegriffen, z.B. über einen Branch-Befehl 
				brlo und brlt an (oder brsh und brge )...
				Es ist sinnvoll, dass beim Überlauf zweier negativer Werte auch immer das Carry gesetzt ist und beim Überlauf zweier positiver Werte nie.
Zurück zum Seiteninhalt | Zurück zum Hauptmenü