Assembler/C Programme anzeigen
-
Guten Morgen liebe Programmierer,
Wer kann mir den genauen Befehl nennen, den man eingeben muss, um ein C-Programm als Assembler Quelltext angezeigt zu bekommen.
Bsp:Einfaches x-beliebiges Programm :
Das Programm mit dem Namen do_Schleife.c - Dazu will man die Auflösung in As
Gnu-Assembler, also unter Linux angezeigt bekommen.#include<stdio.h> main() { int eingabe; do{ printf("Bitte eine Zahl eingeben bis max 100: "); scanf("%i",&eingabe); } while(eingabe >100); printf("Ihre Eingabe war %i",eingabe); }
Wie lautet die genaue Syntax Editor von Linux (oder Windows),
das ist ja im einzelnen unterschiedlich, für dieses Programm mit dem Namen:
do_Schleife.c
-
Du hast die gleiche Frage schon im C-Unterforum gestellt...
Wenn ich das richtig verstehe, willst du einfach die Ausgabe vom as von diesem Programm?
erstmal solltest du dein programm gescheit umschreiben, so:
#include <stdio.h> int main() // es heißt "int main", weil main einen int zurückgibt { int eingabe=0; while(eingabe > 100) // das ganze do-konstrukt kannst du dir sparen. { printf("Bitte eine Zahl eingeben bis max 100: "); scanf("%i",&eingabe); } printf("Ihre Eingabe war %i",eingabe); return 0; // das ist der int, den main zurückgibt }
darf ich fragen, welches buch du zum lernen verwendest? das sieht mir nämlich sehr nach K&R-C aus...
der as-output DEINES quellcodes aus dem eingangspost sieht folgendermaßen aus:
.file "do_Schleife.c" .def ___main; .scl 2; .type 32; .endef .section .rdata,"dr" .align 4 LC0: .ascii "Bitte eine Zahl eingeben bis max 100: \0" LC1: .ascii "%i\0" LC2: .ascii "Ihre Eingabe war %i\0" .text .globl _main .def _main; .scl 2; .type 32; .endef _main: LFB6: .cfi_startproc pushl %ebp .cfi_def_cfa_offset 8 .cfi_offset 5, -8 movl %esp, %ebp .cfi_def_cfa_register 5 andl $-16, %esp subl $32, %esp call ___main L2: movl $LC0, (%esp) call _printf leal 28(%esp), %eax movl %eax, 4(%esp) movl $LC1, (%esp) call _scanf movl 28(%esp), %eax cmpl $100, %eax jg L2 movl 28(%esp), %eax movl %eax, 4(%esp) movl $LC2, (%esp) call _printf leave .cfi_restore 5 .cfi_def_cfa 4, 4 ret .cfi_endproc LFE6: .def _printf; .scl 2; .type 32; .endef .def _scanf; .scl 2; .type 32; .endef
-
Danke für die Hinweise und das Programm , das bringt mich schon weiter,
wonach Ich suche ist jedoch der exakte Befehl bzw. Vorgehen wie Ich --selber-- ein c-Programm in Assembler anzeigen lassen kann!
Der Hinweis von elise mit :
gcc -S deinedatei.chat mich schon insoweit weitergebracht als dass in Linux im Terminal in dem Verzeichnis eine Datei mit dem Namen deinedatei.s erzeugt wird.
Mit dem zweiten Teil: ->"deinedatei.s" bekomme Ich allerdings nicht den Inhalt der -entsprechenden- Datei angezeigt?
Ich muss das Terminal irgendwie dazu bringen mir den Inhalt des c-Programms, so wie es der Kollege in dem Vorhergehenden Beispiel gut dargestellt hat, anzeigen zu lassen.
??? ...