PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Carry und Overflow


Gast
2008-01-13, 13:05:23
Hi,

Was ist eigentlich der Unterschied zwischen einem Carry und einem Overflow (bit)?

Monger
2008-01-13, 13:13:45
Overflow ist dann, wenn einem die Carry Bits ausgehen! ;)

Nehmen wir mal an, du hast zwei 8Bit Register. Wenn auf dem einen z.B. irgendeine Addition gemacht wird die eben größer als ein Byte wird, gibts ein Carry auf das nächste Register. Wenn du aber eine Operation hast die sogar die insgesamt 16Bit sprengt, gibts halt ein Overflow. So viel kann die aktuelle Maschine schlicht nicht.

Xmas
2008-01-13, 13:49:06
Das Overflow-Flag ist das vorzeichenbehaftete Äquivalent zum Carry-Flag. Es wird beispielsweise gesetzt, wenn man zwei Zahlen gleichen Vorzeichens (=MSB) addiert und das Ergebnis ein anderes Vorzeichen besitzt.

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

In Kombination mit dem Carry-Flag kann man dann Overflow und Underflow unterscheiden.

Gast
2008-01-13, 14:17:55
Danke.
Also Carry würde in deinem Beispiel nur dann auftreten, wenn die (vorzeichenlosen) 255 überschritten werden?

SGT.Hawk
2008-01-13, 14:25:41
Ja.