mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Carry Flag


Autor: Robert S. (razer) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo an alle

Ich möchte mich nun auch ein bisschen in die Assembler Programmierung 
vorwagen ;)

Jetzt hab ich scho öfters vom Carry Flag gelesen. Was ist das genau? Wo 
liegt es im Speicher. Wozu wird es genau gebraucht??

Ich hoffe es kann mir wer helfen.

Danke im Voraus
Gruß Robert

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Carry-Flag liegt (beim AVR) im Status-Register SREG, und zeigt an 
wenn bei einer arithmetischen Operation ein Überlauf aufgetreten ist. 
Welche Befehle das Carry-Flag setzen und abfragen steht in der 
Assembler-Dokumentation des jeweiligen Prozessors.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab mal gehört dass es bei aktuellen PC-Prozessoren kein Carry-Flag mehr 
gibt.
Hat da jemand Infos drüber?

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt Prozessoren ohne Carry-Flag. Weil es Prozessoren ohne 
Statusregister gibt. Ist eine Konsequenz aus der Entwicklung von 
performanten Prozessorarchitekturen, die keine / möglichst wenig 
Resourcen haben, die einer gleichzeitigen Ausführung mehrerer Befehlen 
im Weg stehen. PC Prozessoren freilich müssen kompatibel zum uralt-8086 
sein, mitsamt Carry und Andreas Stiller's alter Liebe, dem A20-Gate.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
A.K. wrote:
> Es gibt Prozessoren ohne Carry-Flag. Weil es Prozessoren ohne
> Statusregister gibt.

Wie werden dann aber Vergleiche und Rechnungen mit höherer Bitbreite 
gemacht ?


Peter

Autor: Bla (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Beim AVR zB muss man das Carry flag meist nicht direckt angesprochen 
werden.
Eine 16 bit addition ist zB

add r16, r20
adc r17, r21

Viele Befehle veraendern das carry flag, andere beruecksichtigen es. Zb 
ein rotate, shift, und dgl.

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Wie werden dann aber Vergleiche und Rechnungen mit höherer
> Bitbreite gemacht ?

Gute Frage. Leider habe ich GCC für MIPS(32) nicht parat, denn ist eine 
solche Architektur, wie auch Alpha. Man kann natürlich immer einen der 
Operanden mit dem Ergebnis vergleichen und so erfahren, ob ein Übertrag 
auftrat.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.