<sub class="descriptionSection">05-11-2024 10:02:am // #Tag // [[TI]]</sub>
____
Wenn im Dualsystem, entweder per Addition oder Subtraktion, Zahlen zusammengerechnet werden, dann muss man einige Flags beachten.
Es gibt diese Flags:
| Flag | Name | Zusammensetzung | Annmerkung |
| ------ | --------------- | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------- |
| C-Flag | Carry-out Flag | | Nur im "Signed Bereich" bzw mit Komplementdarstellung wichtig |
| V-Flag | Carry-in Flag | Wird aus C-Flag und MSB (Most Significant Bit) gebildet per XOR vergleich | |
| Z-Flag | Zero-Flag | Wenn alle stellen 0 sind ist das Zero Flag 1 | |
| S-Flag | Wahres Ergebnis | Wird aus dem V-Flag und N-Flag gebildet per XOR | |
| N-Flag | Negative Flag | Wird ermittelt aus MSB (wenn MSB = 1, negativ, wenn MSB = 0, positiv)<br>Wird aus dem MSB gebildet (wenn 1 dann negativ) | |
## XOR Verfahren (Antivalenz)
Ein XOR Vergleich wird durchgeführt indem man diese Werte tabelle nutzt:
| Value 1 | Value 2 | Ergebnis |
| ------- | ------- | -------- |
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
## Das C-Flag
Das C-Flag (o.d auch Carry-Flag) hat nur relevanz im unsigned bereich. Im unsigned bereich wird das Carry Flag genutzt um festzustellen ob ein zusätzliches byte für die darstellung der Zahl gebraucht wird. Es ist somit außerhalb des anfangs bereichs. Ein Beispiel aus der Addition:
![[IMG_0178.jpeg]]
> Das Carry Flag wird gesetzt, wenn ein Übertrag **aus** dem Most Significant Bit (ganz linkes, werthöchstes Bit) festgestellt wird!
Das C-Flag wird auch "Carry-out-Flag" genannt!
## Das V-Flag
Das V-Fag ist das "Overflow-Flag", hiermit wird festgelegt ob ein Overflow vorhanden ist. Es ist nur im **signed bereich** relevant, da im signed bereich der bereich von vorn-herein feststeht und nicht (wie beim unsigned bereich und dem c-flag) erweitert werden kann.
Das V-Flag wird aufgrund von einem [[#XOR Verfahren (Antivalenz)]] zwischen dem *Übertrag in das MSB* und der Carry-out-Flag gebildet:
![[IMG_0181.jpeg]]
## Das N-Flag
Das N-Flag wird aus dem MSB gebildet. Wenn das MSB eine 1 ist, dann ist die Zahl als Negativ anzusehen. Hiermit muss dann per [[Rechnen mit Dualzahlen#Bestimmung des B-Kompliments / Zweier Kompliments|Komplementbildung]] , etc. umgerechnet werden um das korrekte ergebnis zu erhalten
## Das S-Flag
Die S-Flag (Wahres-Ergebnis Flag) wird aus dem XOR vom V-Flag und dem N-Flag erstellt:
![[IMG_0182.jpeg]]
## Das Z-Flag
Die Zero Flag wird gesetzt wenn alle stellen der Zahl "0" sind. Dann wäre das Z-Flag "1"
## Beispiele mit allen Flags:
![[IMG_0184.jpeg]]
### Beispiel 2
Geg: "signed" n = 8, Zahl 1 = 01000000, Zahl 2 = 00010000
![[IMG_0185.jpeg]]