Forum: Compiler & IDEs Direktive für Assembler-Code


von peter (Gast)


Lesenswert?

Hiho,

mit welcher Compiler-Direktive veranlasst man GCC eine Assembler-Datei 
zu erstellen?

Danke für Hilfe!
Peter

von notker (Gast)


Lesenswert?

mit der Kommandozeilen-Option "-S".

von peter (Gast)


Lesenswert?

Danke Notker,

muß man das als Compiler flag setzen?
Ich habs probiert, aber er hat einen Fehler ausgespuckt.

Grüße,
Peter

von BAB (Gast)


Lesenswert?

wie es notker schon sagt in der kommadozeile hinter dem make.exe...ich 
habs leier noch nie gemacht kann dir also nichts weiter darüber sagen...

von peter (Gast)


Lesenswert?

Ich hab das jetzt probiert ("-S" in der Kommandozeile),
aber so wirklich funktioniert hat das nicht... er kompiliert und linkt 
nach wie vor brav zu einem ".hex"-File.
Weiß jemand Rat?

Grüße,
Peter

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Nicht hinter die make.exe, sondern hinter den avr-gcc-Aufruf (bzw. ins 
Makefile). Oder du disassemblierst dein Programm einfach nach dem 
Kompilieren:

avr-objdump -DS test1.elf > test1.lst

von Notker (Gast)


Lesenswert?

Soweit ich das in Erinnerung habe, entsteht aber sowieso als 
Zwischenprodukt ein kommentiertes Assemblerlisting (xyz.lst). Wenn es 
nur zu Kontrollzwecken dienen soll, hat man hier was man sucht. Die 
entsprechenden C-Befehle stehen als Kommentare mit dabei.

von Notker (Gast)


Lesenswert?

Also wer das mal ausprobieren möchte, der genaue Syntax lautet wie 
folgt:

z.B. für eine Source test.c

avr-gcc -S -mmcu=at90s2313 test.c

Gross-/Kleinschreibung unbedingt beachten und den entsprechenden AVR-Typ 
angeben!
Danach findet man eine Datei namens test.s (entsprechend dem Beispiel) 
im Verzeichnis, die den Assembler-Quellcode enthält. Wenn man es noch 
etwas genauer wissen will, kann man noch den Parameter -fverbose-asm 
angeben, dann sieht man auch die default-Parameter, die bei der 
Übersetzung beim avrgcc gesetzt wurden. Den Assembler-Code kann man, je 
nach Geschmack etwas bearbeiten und dann mit avr-as.exe zum fertigen 
Produkt assemblieren. Es ist aber zu beachten, dass der avr-as (soweit 
mir bekannt) einen anderen Syntax hat als z.B. der wavrasm von Atmel.

Notker

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.