In welchem Assembler-Code sind EXE-Dateien geschrieben/kompiliert?

3 Antworten

Dass solche Programm in 99% aller Fälle nicht in Assembler geschrieben wurden, ist nur klar.

16-Bit-Programme für DOS und Windows (<= 3) enthalten die üblichen Instruktionen für 8086 bis 80486-Prozessoren, die in non-real-Modus laufen.

32-Bit-Programme (ab Windows-95 und Windows 3.32 mit 32bit-Erweiterung) verwenden die Instruktionen des RealMode von Prozessoren ab 80386 außerdem werden hier Programme in P-Code ausgeführt, die Instruktionen für einen virtuellen Prozessor verwenden.

64-Bit-Programme (ab Windows-XP 64bit) verwenden AFAIK nur noch P-Code und (bei C#) eine Art Mischung aus Interpreter und Zwischencode).

Genau umgekehrt:

DOS und Windows 1.x und teilweise 2.x hat "real Mode" verwendet.

Windows 3.x und teilweise 2.x hat "16-bit protected Mode" verwendet. Die Instruktionen sind im "real Mode" und im "16-bit protected Mode" dieselben, jedoch haben die Segmentregister eine andere Bedeutung.

Ab Windows NT 3.x hat Windows "32-bit protected Mode" verwendet.

Bei 64-bit Windows wird "long Mode" verwendet.

Zwar verwenden inzwischen sehr viele Programme CIL Code ("P-Code"), jedoch gibt es immer noch viele Programme, die nativen 32- oder 64-bit-Code verwenden.

1

Die werden überhauptnicht in assembler geschrieben sondern von einem Compiler aus einer anderen Sprache übersetzt. Viele Windows Programme werden aber nichtmal das. Sie liegen in einer Zwischensprache vor die von .net Framework gelesen werden kann.

exe sind ausführbare dateien , sie werden compiliert und sind dann in maschinensprache vorliegend , welche sprache zum  compilieren wird ist egal . das endprodukt ist maschinensprache die windows ausführen kann . und ja 64er code ist anders , da es da um 64 bits geht .

Danke für die schnelle Antwort! Meine Frage ist eben: Welches ist denn die "Maschinensprache, die Windows ausführen kann"? Logischerweise können die Hochsprachen unterschiedlich sein, der Compiler übersetzt das alles in eine bestimmte Art von Assembler. Sind alle Prozessoren, auf denen Windows läuft, gleich oder zumindest genormt (mir schwirren da die Begriffe RISC und CISC im Kopf rum...?), die Opcodes in der EXE-File genau danach ausgerichtet sind? Assembler ist ja nicht gleich Assembler, es gibt ja für jede Art von Prozessor eine eigene Sprache.

1

Visual Studio 2015 - Compiling von x64 funktioniert nicht, aber von x86 schon?

Hallo

Ich programmiere aktuell an meinem Laptop (Windows 8.1, 64-Bit, 64Bit-Prozessor) mit dem Programm "Visual Studio 2015". Als ich mein Programm Kompilieren wollte kam eine Fehlermeldung. ("Project "XY" konnte nicht kompiliert werden. Unbekannter Fehler im Framework des Windows Webdienst) oder so ähnlich. Ich fand nicht heraus was der Fehler war, bis ich das Programm nicht in 64-Bit sondern in 32-Bit kompiliert habe. Nun geht es.

Aber wie kann ich diesen Fehler beheben, Dass mein Programm in 64-Bit kompiliert werden kann.

Mein Code ist ungefähr 200-300 Zeilen lang und ich programmiere C++-Programme, fals dies wichtig währe.

Vielen Dank und freundliche Grüsse Eure Pflanze

...zur Frage

Problem mit DirectX bei Steam

Guten Abend.

Also, ich will mir über Steam ein Spiel downloaden, habe es runtergeladen, aber nun hab ich ein Problem: Es kommt folgende Fehlermeldung: fatal directX error! Code:2 result: 0x0: S_OK the game will now exit. try starting the game with /failsafe if the problem persists

Also wollte ich mir eine neuere Version von DirectX runterladen, weil ich glaube, dass das dann funktionieren müsste. Ich halte meinen PC leider nicht bei vielen Dingen auf dem neuestens Stand...

Dann hab ich mir eins für Windows Vista 32bit runtergeladen und in dem Winrar-Archiv waren 2 Dateien: Windows6.0-KB971512-x64.msu und Windows6.0-KB971512-x86.msu

Das Problem: Beide funktionieren nicht. Was kann ich tun?

Danke für jede Antwort :)

...zur Frage

Mehrere .java Dateien /.jar Datei kompilieren?

Ich habe eine jar Datei mit der jdk exe gemacht. Anstatt class Dateien habe ich ihm Java Dateien gegeben, in der Hoffnung, dass er sie zu class Dateien kompiliert. Allerdings habe ich erst später gemerkt, dass er sie gar nicht kompiliert hat! Es sind viele java Dateien, so dass es sehr mühsam wäre, alles einzeln zu kompilieren. Meine Frage ist, ob ich alle Java Dateien in einem Ordner und dessen unterordnern und dessen unterordnern... oder alle Java Dateien in der jar Datei mit einem Befehl zu kompilieren oder gibt es dafür andere Compiler?

...zur Frage

Kann eine CPU direkt Assembler Code ausführen

Meine Frage: Kann eine CPU direkt eine Datei mit Assembler Code ausführen oder muss diese in einem bestimmten Format sein?

...zur Frage

64 Bit , 32 Bit - .exe Datei nicht ausführbar

Hallo. Ich habe folgendes Problem: Ich habe mir ein Programm/Game in Form von mehreren rar Dateien runtergeladen und extrahiert. Wenn ich dieses nun mit der Setup.exe installieren will kommt folgende Fehlermeldung :

"Die Version dieser Datei ist nicht mit der ausgeführten Windows-Version kompatibel. Öffnen Sie die Systeminformationen des Computers, um zu überprüfen, ob eine x86-(32 Bit)- oder eine x64-(64 Bit)-Version des Programms erforderlich ist, und wenden Sie sich anschließend an den Herausgeber der Software."

Zu meinem Rechner: Windows 7 Home Premium Service Pack 1 64 Bit

Ich kann mir nicht vorstellen, dass das Programm mit 32 Bit läuft es ist weder alt noch exotisch und läuft bei anderen auf 64 Bit problemlos.

Kompatiblitätsmodus und als Administrator hat nichts gebracht. Kann mir jemand weiterhelfen ?

LG

...zur Frage

MBR ins assembler, output über MEHRERE Zeilen?

Guten Tag,

Ich habe bereits meinen eigenen MBR in assambler geschrieben, welcher auch in sofern funktioniert, dass er beim booten "Hallo Welt!" auf den Bildschirm schreibt.

(Ich verwende NASM falls das eine Rolle spielt)

Nun wollte ich aber einen String über mehrere Zeilen ausgeben und dabei habe ich noch ein Problem.

Wie mache ich das? Mein Code ist als Anhang zu finden.

Schon mal Danke im Vorraus ;)

----------------------------------------------------------------------------------------------

...zur Frage

Was möchtest Du wissen?