Man findet schon was zum Thema Datentypen. Überlauf, Bitbreite etc. sind erste Grundlagen der Programmierung. Wer in Assembler bzw. mit Maschinensprache anfängt MUSS die Grundlagen lernen. Inkrementierung und Dekrementierung geht i.R. mit einem Überlauf eines Registers einher, das eine bestimmte Bitbreite hat. Ein 8Bit-Register hat 8 Bit. Das sind 256 mögliche Werte, von 0 bis 255. Das bedeutet, wenn in einem Register alle Bits gesetzt sind und eine Inkrementierung auf das Register stattfindet (80x86 bspw.: INC AL), dass das Register auf "0" springt, weil ein Überlauf stattfindet. Aber das ist nicht alles. Dazu kommt, dass beim Überlauf ein Überlauf-Bit (Carry-Flag) gesetzt wird. Es gibt weitere Befehle, die dieses Bit verrechnen können. ADC (80x86) steht zum Beispiel für Addition mit Carry. Auf diese Weise lässt sich, mit wenigen Bit eines Registers, mit riesigen Zahlen rechnen, die niemals in dieses Register vollständig hinein passen würden. Später gab es mathematische Coprozzessoren mit Registern die eine wesentlich größere Bitbreite hatten.
In einer Hochsprache ist das aber eher unwichtig. Hier geht es mehr darum, die Grenzwerte der Datentypen zu kennen und sich innerhalb dieser zu bewegen. Für eine Berechnung eines Wertes brauche ich also den passenden Datentyp, wenn es keine Überraschungen geben soll.
MfG
Lesezeichen