Forum: Mikrocontroller und Digitale Elektronik Carry Flag


von Robert S. (razer) Benutzerseite


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

von Andreas S. (andreas) (Admin) Benutzerseite


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.

von Thomas (Gast)


Lesenswert?

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

von A.K. (Gast)


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.

von Peter D. (peda)


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

von Bla (Gast)


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.

von A.K. (Gast)


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.

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.