8 bit addition

Gast #4554213
Lesenswert?
• ▲
▼
Guten Abend zusammen,

ich hab eine kurze Frage zu folgender Fragestellung.

Die 8 bit Addition von 0xC2 + 0x3E = 0x100

ist ja grundsätzlich richtig wenn ichs ohne die 8 bit betrachte. Aber 
was passiert wenn ich nur 8 bit habe. Ist das Ergebnis dann einfach 0x00 
und es wird ein Carrybit gesetzt oder ergibt die Rechnung tatsächlich 
0x100 mit einem neu gesetzten 8 bit Block?

Bei 16 und 32 Bit ist das Ergebnis ja dann tatsächlich 0x100.

Wäre echt super wenn ihr mir helfen könntet.

Gruß Tom
Gast #4554224
Lesenswert?
• ▲
▼
TomLtnr schrieb:
> Ist das Ergebnis dann einfach 0x00 und es wird ein Carrybit gesetzt
> oder ergibt die Rechnung tatsächlich 0x100 mit einem neu gesetzten
> 8 bit Block?

Bei einer 8 Bit Addition wird wohl kaum 0x100 rauskommen können, weil 
das 9 Bit sind. Ob und wie du das Carry-Bit auswertest, steht auf einem 
anderen Blatt.
Gast #4554230
Lesenswert?
• ▲
▼
Gehen wir mal davon aus (weil du 8-Bit-Zahlen addierst),
dass du allen Variablen nur 8 Bit zugewiesen hast:

Jeder µP und µC setzt dabei natürlich ein Carry-Bit.
Aber das Ergebnis im gewählten Register bleibt = NULL.

Woher soll der Compiler, (bei C), oder der Assembler
(bei ASM) nun wissen, dass du plötzlich doch lieber mit
16 Bit, oder mehr rechnen möchtest?

In C wirst du dich bei 8-Bit-Variablen mit dem Ergebnis
zufriedengeben müssen, dass in 8 Bit passt.
Da wird nix neues bereitgestellt - du hättest mit den vorher
gemachten 8-Bit-Definitionen der Variablen auch garkeinen
Zugriff darauf!

Bei ASM könntest du den Mittelwert der Summanden
immerhin noch mit Rechtsrotation bestimmen... ;-)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren