5/5 Unterstützung durch den Visualizer
Funktionsübersicht
Wie bereits in der Einführung des Calculators erwähnt, werden nach jeder Berechnung die Flags geupdated. Der Visualizer ist eine grafische Unterstützung, die für ein besseres Verständnis der Flags sorgen soll. Der Visualizer befindet sich auf der rechten Seite des Calculator-Registers (rot umrandet).
Visualisierung der beiden Operanden
Die beiden Operanden werden auf einem Zahlenkreis dargestellt, um den Übertrag (Carry) und den Überlauf (Overflow) zu veranschaulichen. Die blaue Linie repräsentiert den ersten Operanden und die rote Linie den zweiten. Der Punkt am Ende jeder Linie zeigt die exakte Zahl an.
Bei einer Addition startet die Linie des zweiten Operanden am Ende der Linie des ersten und “addiert” ihre Länge. Bei einer Subtraktion bewegt sich die Linie des zweiten Operanden in die entgegengesetzte Richtung. Für die Multiplikation werden die Linien zwar auch angezeigt, sind aber weniger hilfreich für die Visualisierung.
Visualisierung des Carry-Flag (unsigned)
Das Carry-Flag wird bei einer unsigned Berechnung gesetzt, wenn das Ergebnis zu gross oder zu klein für den darstellbaren Bereich ist. Infolgedessen wird der Bereich zwischen 0 und 255 (resp. 2^16 oder 2^32 abhängig von der eingestellten ALU-Size) im oberen Zahlenstrahl visualisiert. Geht die Linie durch den Carry-Bereich hindurch (pink eingefärbt) ist das Carry-Flag gesetzt.
Visualisierung des Overflow-Flag (signed)
Das Overflow-Flag wird bei einer signed Berechnung gesetzt, wenn das Ergebnis einer Addition oder Subtraktion ausserhalb des darstellbaren Bereichs von -128 bis 127 liegt (abhängig von der ALU-Size). Dies geschieht bei einer Addition, wenn beide Operanden das gleiche Vorzeichen haben und das Ergebnis den erlaubten Bereich überschreitet. Bei einer Subtraktion tritt dies auf, wenn die Operanden unterschiedliche Vorzeichen haben aber das Ergebnis das falsche Vorzeichen erhält. Um dies verständlicher zu machen, wird der Bereich, in dem der Vorzeichenwechsel stattfindet, visualisiert.
Tipp:
Das Overflow-Flag wird bei einer Subtraktion gesetzt, wenn eine positive Zahl minus eine negative Zahl zu einer negativen Zahl führt oder wenn eine negative Zahl minus eine positive Zahl zu einer positiven Zahl führt.