2012-03-31 5 views

Antwort

4

Verwenden gcc es in eine ausführbare Datei zu kompilieren, dann objdump -d verwenden zu drucken:

gcc -c -o my_file.o my_file.s 
objdump -d my_file.o 
+0

Wenn ich versuche es mit gcc kompilieren ich ein paar Fehler wie '/tmp/ccLqYN5a.o erhalten: In Funktion' _start ': (.text + 0x0): mehrere Definition von '_start' /usr/bin/ld: /usr/lib/debug/usr/lib/crt1.o(.debug_info): Umzug 0 hat ungültigen Symbolindex 11' – Nosrettap

+0

Versuchen Sie die bearbeitete Version. –

+0

Danke, das hat funktioniert. Was bedeutet -c? – Nosrettap

1

Die Hauptsache hier ist, dass Sie einen Hex-Editor oder Betrachter benötigen. Es gibt viele kostenlose, die Sie finden können.

Nachdem Sie die Datei zusammengestellt haben, haben Sie eine Ausgabedatei, die oft im ELF-Format ist, was bedeutet, dass zusätzliche Informationen in einer Kopfzeile am Anfang der Datei vorhanden sind. Sie können ld sagen mithilfe der oformat Flagge eine flache Binärdatei mit nichts als der Montageanleitung zu erstellen:

$ld file.o -oformat binary 

Dann, wenn Sie Ihre ausführbare Datei mit einem Hex-Editor öffnen, werden Sie den Maschinencode sehen, dass die Assembler generiert.

Verwandte Themen