Forum: Mikrocontroller und Digitale Elektronik Frage zum adc und add-Befehl?


von Thomas (kosmos)


Lesenswert?

kurze Frage zum add-Befehl wenn ich 2 Register addiere die jeweils auf 
255 stehen dann müsste ja das Ergebniss 9Bits groß sein. Wo wird dieses 
9 bit abgelegt im Carry?

bei dieser 16bit Addition:
add Zahl1l, Zahl2l
adc Zahl1h, Zahl2h
müsste es ja auch ein 17bit geben landet das auch im Carry. Laut dem 
Instruction set werden mit adc 2 Register und der Inhalt des Carry-Flags 
addiert, also muss ja das Carry durch die vorherige Addition gesetzt 
werden wenn das Ergebniss über 8bit hinausgeht.

von johnny.m (Gast)


Lesenswert?

Wenn Du zwei Zahlen addierst und es entsteht ein Überlauf, dann wird das 
Carry-Flag gesetzt. Wenn es keinen Überlauf gibt, wird das Carry-Flag 
gelöscht.
Wenn es bei "add Zahl1l, Zahl2l" einen Überlauf gibt, wird das Carry 
gesetzt. Bei "adc Zahl1h, Zahl2h" wird dann das Carry von der 
Low-Byte-Addition zum Ergebnis der High-Byte-Addition hinzugefügt. Wo 
ist das Problem?

von Thomas (kosmos)


Lesenswert?

ok danke also dann stellt das Cyrry also das 9te bzw. 17te bit dar.

von Mike R. (thesealion)


Lesenswert?

Nicht ganz, das Carry stellt nur den Übertrag da.

Das 9te Bit der Addition steht immer noch in deiner High-Adressee.

Wobei das wohl eher ein begriffliches und kein Verständnis-Problem ist.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.