Funktionsübersicht

Gast #237785
Hallo!
Gibt es irgendwo eine Übersicht über die Funktionen, die man mit dem
GCC Compiler mit den mitgelieferten Libraries hat? Suche z.B. einen
Befehl, um das obere und untere Nibbel zu vertauschen. Komme nämlich
mit den inline Assembler auch nicht klar.

Wäre nett, wenn mir einer wenigstens bei einem Problem helfen könnte.

MFG Dominik
#237787
Hallo Dominik,

ist zwar ein bißchen spät, aber genau zum tauschen der nibbles ist im
Bereich "inline-assembly" ein Beispiel in der avr-libc-Dokumentation.
Außerdem versteht man den inline-assembler erst so richtig, wenn man ihn
mal ein wenig einstzt - learning by doing halt.

MfG, Daniel
Gast #237788
Ja dankeschön erstmal. Hab das da auch schon gefunden und man höre und
staune, es hat sogar mit der Anwendung geklappt. Also lieben Dank für
die Hilfe.

MFG Dominik
Gast #237789
Also wenns nicht gerade auf den allerletzten CPU-Zyklus ankommt, sollte
man lieber in C programmieren:

  i = i >> 4 | (unsigned char)(i << 4);



Peter
Gast #237790
Ist ganz lustig, was der Compiler daraus macht. Er erkennt zwar, daß er
die Verschiebung um 4 Bit als swap umsetzen kann, merkt aber nicht, daß
beide mit einem swap erschlagen werden können. Er kopiert also den Wert
in ein zweites Register, "swap"t dann beide, schneidet von jedem die
"überflüssigen" 4 Bits per andi weg und fürt die Ergebnise dann per
or wieder zusammen.
#237791
Hm,

vielleicht realisiert der liebe Compiler dabei nicht, dass einen die
"heringeschobenen Nullen" nicht interessieren - macht der Compiler
bei
1
i = ((i >> 4)&0x0F) | ((i << 4)&0xF0);
was anderes ? Ich könnte es erst heute abend testen, denn hier habe ich
keinen Compiler zur Verfügung.

MfG, Daniel.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.