hallo! ich schreibe in ca 1,5 monaten mein abitur in informatik und ich habe inzwischen die genaue funkton des carry flags vergessen. ich kann auch nix dazu in meinen unterlagen finden! es wäre nett wenn jemand eine beschreibung zur funktion des carry flags parat hätte! danke schon mal im voraus! adrian
Das Übertragsflag. Wenn du mit einer Rechnung aus dem Wertebereich kommst, wird das Carryflag gesetzt, damit du weisst, das du den "Überlauf" noch in dem vom Prozessor vorgesehenen Register berücksichtigen musst, um keine Rechenfehler zu bekommen. Kannst ja mal das Datenblatt von deinem Prozessor lesen, da steht das irgendwo drin! :-)
Dazu hab ich auch noch ne Frage: Wenn ich subtrahieren will, und ein negatives Ergebnis rauskommt, warum ist dann das Carry Bit gesetzt? Also, mal als Beispiel: 5-10 Also 0000 0101 +1111 0110 (2erkomplement) --------------------------- gibt 01111 1011 = FBh davon das 2erkomplement ist 0000 1010, also (-)5 Ich hab im Keil Compiler ausprobiert, als Ergebnis krieg ich dann FBh und das Carry Bit = 1. Warum ist das Carry hier 1?? Ich hab doch keinen Übertrag?!
Doch, hast Du, oder genauer gesagt ein Borow (Unterlauf). Falls Deine Variable nicht 8 Bit sondern 16 Bit breit ist signalisiert das Carry-Flag das vom high-Byte noch extra eine 1 subtrahiert werden muß. MfG Andi
>> Warum ist das Carry hier 1?? Ich hab doch keinen Übertrag?!
Deshalb heist es "Carry" Flag, es ist ein Überlauf-/Unterlauf Flag.
Es ist wichtig bei jeder Art von Addition und Subtraktion, also auch
bei Vergleichoperationen (sind im Grunde Subtraktionen) bei
Multiplikationen, Divisionen, und sogar Shiftoperationen (Links Shifts
sind Additionen). Auf vielen Rechnern hat das Carry noch andere
Aufgaben und fast immer kann es direkt gesetzt/gelöscht werden. Ich
kann garnicht verstehen (bei einem so wichtigen Flag) das du das
vergessen konntest :)
Gruß Hagen
"Ich hab im Keil Compiler ausprobiert" Beim 8051 ist das Carry auch noch der Accu der Bitrecheneinheit, d.h. es läßt sich mit anderen Bits laden und AND, NAND, OR, NOR, EXOR, EXNOR verknüpfen. Weiterhin wird es in Rotationsbefehlen verwendet. "Deshalb heist es "Carry" Flag, es ist ein Überlauf-/Unterlauf Flag." Das ist falsch, den Überlauf zeigt das OV-Flag an (0x7F->0x80), interessiert aber nur bei signed Zahlen. Das Carry bedeutet Übertrag (Addition) oder Borgen (Subtraktion). Peter
>> Das ist falsch, den Überlauf zeigt das OV-Flag an (0x7F->0x80),
Sorry, natürlich korrekt, Übertrag- statt Überlauf- Flag.
Gruß Hagen
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.