Doku zu gcc assembler

Gast #182707
Lesenswert?

Hallo zusammen,

ich bin auf der Suche nach Doku zu den opcodes, wie sie im gcc-as
verwendet werden. Die unterscheiden sich ja von denen in der Doku von
Atmel. (z.B. schreibe ich jetzt ldi 16, 0x05 oder ldi r16, 0x05).
Allgemeine Doku/Einführung zum gcc-as wäre auch nicht verkehrt (z.B.
wie werden jmp umgesetzt, etc...).

Besten Dank,

Scheintod
Gast #182708
Lesenswert?

Hallo nochmal.

Ganz vergessen zu sagen (vielleicht deshalb so wenig Antworten ;) dass
es natürlich um den avr geht. Ich finde zwar Doku zu allen möglichen
Assemblern für den AVR, leider aber extrem spärlich zum gcc-as.
Vielleicht suche ich ja auch nur am falschen Ort?

Das Projekt ist übrigens die Portierung der avr231 (aes-bootloader) vim
iar auf den gcc.

Führt mich nebenbei zu einer anderen Frage noch: Hat jemand Ahnung wie
bei Atmel die Lizenzbedingungen für den code der application-notes
aussehen? Habe da auf direkte Anfrage noch keine Antwort bekommen.
Würde aber gerne die portierte AN auch anderen weitergeben (z.B. hier
in der code-library).

Besten Dank,

Scheintod
Gast #182710
Lesenswert?

Die Opcodes sind tatsächlich dieselben, aber die Direktiven
unterscheiden sich, die sind aber in der GNU-Assembler Doku (siehe
Anhang) recht gut beschrieben. Weiß allerdings nicht ob die auch für
den gcc gelten.
Angehängte Dateien:
Gast #182711
Lesenswert?

Hi Mathias,

Danke für das PDF. Mein letztes Assembler-Programm liegt schon 15 Jahre
zurück (War damals für den Amiga). Von daher kann es schon sein, dass
ich manches Missverstehe. Doku für den avr-gas zu finden ist
tatsächlich nicht einfach. (Und ich suche schon eine ganze weile) Das
PDF beinhaltet ja auch nichts für den avr.

Was mich verwirrt ist z.B. eben, dass in der avr-assembler doku von
atmel ein Register mit z.B. mit 'r15' angesprochen wird. In einem der
wenigen avr-gas dokus z.B. hier:
http://ftp.gnu.org/savannah/files/avr-libc/snapshots/doc/avr-libc-user-manual-dev/assembler.html
das Register alleine mit '15' angesprochen wird.
(Inzwischen habe ich wieder andere Beispiele gefunden, wo das r dann
doch verwendet wird ... das verstehe mal einer)

In Deiner Doku stand auch für diverse Prozessoren die 'optimierte'
jmp Anweisung, die sich je nach Sprungweite die richtige
assembler-Anweisung heraussucht.

In den Beispielcode, die ich online gefunden habe, wird dagegen für
solche Zwecke ein #define Makro verwendet.

Daher kahm meine Vermutung, dass es tatsächlich Unterschiede gibt.
Zumindest lässt er sich benutzen. Ich glaube ich werde mich mal an die
sourcen der avr-libc halten (ist ja genug in assembler dabei) und mit
dem as.pdf sollte ich dann auch die Direktiven verstehen. Besten Dank
also noch mal :)

Schoene Gruesse,

Scheintod

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren