Umwandlungsliste / Maschinencode

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Gina

Betreff: Umwandlungsliste / Maschinencode

BeitragSo, Jul 04, 2004 12:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Huhu,

wollte gerne mal wissen, ob man sich bei Blitz 3D irgendwo die Umwandlungsliste, also den Maschinencode nach dem compilieren, anschauen kann...

Thx, Gina.
 

Steffen

BeitragSo, Jul 04, 2004 12:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Die exe Datei mit einem Hex-Editor öffnen. Da wirst du aber recht wenig verstehen. Man kann die exe aber deassemblieren. Das ist schon etwas verständlicher, aber trotzdem nicht leicht zu verstehen.

Such einfach mal unter google nach hex+editor oder deassembler
>PC: Pentium III 750MHz, ATI Rage 128 mit 32Mb, Windows Me, Blitz3D 1.87
>Laptop: Pentium M 1,4GHz, 512 Mb DDR, ATI Mobility Radeon 9000 mit 64Mb DDR, Windows XP Home, Blitz3D 1.87

Gina

BeitragSo, Jul 04, 2004 14:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Hmm..., so richtig das was ich gesucht habe, ist es nicht. Der Code steht dort fast unverändert drin. Wandelt er das etwa erst bei Programmstart um? Ich kann mir nicht vorstellen, dass die CPU einen Befehl wie CreateCube kennt. Ich hätte jetzt erwartet, dass er diese ganzen Dreiecke berechnet... Und ein If kennt die CPU doch auch nicht. Höchstens einen Vergleich und dann wird der ConditionCode ausgewertet und entsprechend "gesprungen"...

Deassemblieren des Maschinencodes geht eigentlich nicht. Jedenfalls nicht richtig, da es nicht eindeutig ist. Er könnte maximal die Einzelbefehle wieder zurückübersetzen, dann müßte so etwas wie Spaghetticode mit 1000 goto's rauskommen...

Hmm.. ist alles sehr merkwürdig. Kennt sich da jemand aus, was Blitz 3D macht?

Gina.
 

Edlothiol

BeitragSo, Jul 04, 2004 15:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie, der steht da unverändert drin? In der Exe steht der bestimmt nicht unverändert drin. Natürlich in der Quelldatei, die wird als normale Textdatei gespeichert. Erst wenn du eine Exe erstellst oder den Source ausführen willst, wird er in Maschinencode umgewandelt.
Deassemblieren kann man sehr wohl, nur nicht dekompilieren (geht auch, aber da kommt dann nicht der ursprüngliche Code raus, ist ausserdem sehr kompliziert). Dann bekommst du Assembler - Quellcode, der fast genau dem Maschinencode in Textform entspricht.
 

OJay

BeitragSo, Jul 04, 2004 15:54
Antworten mit Zitat
Benutzer-Profile anzeigen
mit der demo kannst du keine ausführbaren dateien erzeugen...

in der vollversion gehst du oben im menü auf "Program"->"Create Executable", gibst einen speicherort und einen namen an, und bekommst so die exe. die kannst du dann anschauen mit einem hexeditor und kannst den tollen maschinencode begutachten Wink
 

Timo

BeitragSo, Jul 04, 2004 20:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Also wenn ichs richtig verstanden habe fragst du dich, wie der rechner eine Funktion wie "CreateCube" versteht, oder? Genau weis ich es auch nicht, aber CreateCube (oder irgend ne andere) wohl eine Funktion, die ebenfalls weiter aufgeteilt ist in weitere Funktionen. Die Aufgabe wird also in immer kleinere Stücke zerlegt und schließlich in Assembler code umgewandelt.
 

Edlothiol

BeitragSo, Jul 04, 2004 20:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja. Der Code der Funktion CreateCube ist eben schon vorab in der Runtime.dll eingebunden und wird dann nur noch zu der Exe hinzugefügt.

Gina

BeitragSo, Jul 04, 2004 21:31
Antworten mit Zitat
Benutzer-Profile anzeigen
@ Timo

so hätte ich es erwartet...

@ Edlothiol

das erklärt natürlich einiges...

Vielen Dank, Gina.

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group