Wie kann man das tun?
Wenn ich analysieren möchte, wie etwas kompiliert wird, wie erhalte ich dann den emittierten Assemblercode?
Wie kann man das tun?
Wenn ich analysieren möchte, wie etwas kompiliert wird, wie erhalte ich dann den emittierten Assemblercode?
Ich sehe diese Möglichkeit nicht unter den Antworten, wahrscheinlich weil die Frage aus dem Jahr 2008 stammt, aber im Jahr 2018 können Sie die Online-Website von Matt Goldbolt nutzen https://godbolt.org
Sie können sein Projekt auch lokal mit git klonen und ausführen https://github.com/mattgodbolt/compiler-explorer
Hier ist eine Lösung für C mit GCC :
gcc -S program.c && gcc program.c -o output
Hier speichert der erste Teil die Assembler-Ausgabe des Programms unter demselben Dateinamen wie Program, aber mit einem geänderten .s können Sie sie wie jede normale Textdatei öffnen.
Der zweite Teil kompiliert Ihr Programm für die tatsächliche Verwendung und erzeugt eine ausführbare Datei für Ihr Programm mit einem bestimmten Dateinamen.
El programm.c ist der Name Ihres Programms und Ausgabe ist der Name der ausführbaren Datei, die Sie erzeugen möchten.
Von: http://www.delorie.com/djgpp/v2faq/faq8_20.html
gcc -c -g -Wa,-a,-ad [andere GCC-Optionen] foo.c > foo.lst
als Alternative zur Antwort von PhirePhly Oder verwenden Sie einfach -S, wie alle gesagt haben.
Hier sind die Schritte, um den Assembler-Code eines beliebigen C-Programms auf Ihrem Windows zu sehen/zu drucken
Konsole /Terminal/ Eingabeaufforderung :
Schreiben Sie ein C-Programm in einem C-Code-Editor wie Codeblocks und speichern Sie es mit der Endung .c
Kompilieren Sie es und führen Sie es aus.
Nach erfolgreicher Ausführung wechseln Sie in den Ordner, in dem Sie Ihren gcc-Compiler installiert haben, und geben Sie die
folgenden Befehl, um eine ".s"-Datei der ".c"-Datei zu erhalten
C:\ gcc> gcc -S vollständiger Pfad der C-Datei ENTER
Ein Beispielbefehl (wie in meinem Fall)
C:\gcc > gcc -S D:\Aa_C_Certified\alternate_letters.c
Dies gibt eine ".s"-Datei der ursprünglichen ".c"-Datei aus
4 . Geben Sie anschließend den folgenden Befehl ein
C; \gcc > cpp filename.s ENTER
Beispielbefehl (wie in meinem Fall)
C; \gcc > cpp alternate_letters.s
Dadurch wird der gesamte Assembler-Code Ihres C-Programms gedruckt/ausgegeben.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.