Forum: Mikrocontroller und Digitale Elektronik Statusregister


von Luke (Gast)


Lesenswert?

Hallo liebe Community,

ich studiere Elektrotechnik und Informationstechnik und habe eine 
seeeehr allgemeine Frage zum Statusregister.

Es geht um die folgenden Bits:

Carry-Flag
Overflow-Flag

Wie genau unterscheiden sich diese Flags?

Ich nehme an das man erstmal die beiden Fälle unterscheiden muss:

-negative(r) Operand(en)
-possitive(r) Operand(en)

Kann mir jemand explizit Rechnungen zeigen bei dem nur das ein oder das 
andere oder beide Bits gesetzt werden ?

Ich weiß wie ein Subtraktion mit 2er-Kompl. durchgefuehrt wird.
Gehen wir von einem 8bit int aus, also 0-255 für unsigned und (-128) - 
(127) für signed :

Unser Prozessor rechnet mit 2er-Kompl. Also interpretiert er Zahlen die 
eine "1" im MSB habeninterpetiert er als negative Zahlen.

Was passiert mit den dem Carry und Overflow Flag bei folgnden 
Rechnungen:

255 + 1
127 + 1
200 - 300
200 - 500
-128 - 1

Welche Fälle sind noch interessant ?

Vielen Dank im Voraus.

Liebe Grüße
Luke

von Peter II (Gast)


Lesenswert?

Luke schrieb:
> Was passiert mit den dem Carry und Overflow Flag bei folgnden
> Rechnungen:

das steht im Datenblatt vom dem Prozessor - den wir nicht kennen.

von Neuschöpfung (Gast)


Lesenswert?

seeeehr ?

Gibt es das Wort ? Oder ist es eine Neuschöpfung ?

von Stefan F. (Gast)


Lesenswert?

"seeehr" ist eine Umschreibung für "sehrerer" :-)

von Luke (Gast)


Lesenswert?

Wow, schon so viel konstruktive Antworten innerhalb zwei Minuten. Lol.

von Peter II (Gast)


Lesenswert?

Luke schrieb:
> Wow, schon so viel konstruktive Antworten innerhalb zwei Minuten. Lol.

wenn die Fragestellung nicht vollständig ist. Woher sollen wie wissen 
wie ein unbekannter Prozessor die Flags setzt?

von Peter II (Gast)


Lesenswert?

Nachtrag:

> 255 + 1
> 127 + 1
> 200 - 300
> 200 - 500
> -128 - 1

das hilft auch kaum weiter, weil es keine ASM Befehle sind. Man müsste 
schon schauen was der Compiler daraus gemacht hat.

von Luke (Gast)


Lesenswert?

Wohl wahr,

es geht um den ATmega128.



• Bit 3 – V: Two’s Complement Overflow Flag
The Two’s Complement Overflow Flag V supports two’s complement 
arithmetics.

>???

• Bit 2 – N: Negative Flag
The Negative Flag N indicates a negative result in an arithmetic or 
logic operation.

>Ist high wenn MSB high ist ???? (Also eine negative Zahl erkannt wurde)

• Bit 0 – C: Carry Flag
The Carry Flag C indicates a carry in an arithmetic or logic operation.


>Ist high wenn das Ergebnis nicht mehr in den gültigen Zahlenbereich >passt ? 
unabhängig von Vorzeichen ?

• Bit 4 – S: Sign Bit, S = N ⊕ V
The S-bit is always an exclusive or between the negative flag N and the 
two’s complement overflow
flag V.


>Bit 4 scheint XOR Verknüpfung von Bit 3 und 2 zu sein:
>Ist also high wenn entweder Bit2 oder Bit 3 high ist. Aber was gewinne >ich aus 
dieser Information?

von Peter II (Gast)


Lesenswert?

Luke schrieb:
> Aber was gewinne >ich aus
> dieser Information?

schau dir einen konkreten Befehl an. Z.b.

inc

http://www.atmel.com/images/Atmel-0856-AVR-Instruction-Set-Manual.pdf
Seite: 101

Dort steht welche Flags genacht wie gesetzt sind. Was du dann damit 
machst ist dem µC egal. Es gibt dann befehle die werten dann diese Flags 
aus.

z.b. brne

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.