hi!
Haeh?! Das ist jetzt wirklich Quatsch!
Der Maschinencode wird vom Prozessor ausgefuehrt, Punkt. Da
pfuscht kein Betriebssystem oder sonstwas drin rum. Das BS selbst
ist ja schliesslich auch nur Maschinencode, nichts anderes als
ein stinknormales Programm.
hm, tut mir leid, ich hab das anders gelernt... oder ich werf da was
durcheinander *g*
In welcher Hinsicht? Die ausführbare Datei eines Programs enthält reinen Maschinencode, der direkt vom
Prozessor ausgeführt wird. Gib zb. mal "debug programm.exe" ein und dann "u".
=== cut ===
0CB3:0100 50 PUSH AX
0CB3:0101 4B DEC BX
0CB3:0102 0304 ADD AX,[SI]
0CB3:0104 1400 ADC AL,00
0CB3:0106 0000 ADD [BX+SI],AL
0CB3:0108 0800 OR [BX+SI],AL
0CB3:010A 046A ADD AL,6A
0CB3:010C 7B26 JPO 0134
0CB3:010E F718 NEG WORD PTR [BX+SI]
0CB3:0110 D98C49020000 ESC 09,[SI+0249][SI+0000]
0CB3:0116 1E PUSH DS
0CB3:0117 0400 ADD AL,00
0CB3:0119 000A ADD [BP+SI],CL
0CB3:011B 0000 ADD [BX+SI],AL
0CB3:011D 005265 ADD [BP+SI+65],DL
=== cut ===
Vornedran steht die Adresse der jeweiligen Stelle im Programm (xxxx:0100 ist normalerweise die erste
Anweisung), danach kommt der Maschinencode in Hex-Form, danach des disassemblierte Sourcecode
(Disassemblierung des Sourcecodes ist jederzeit möglich, da - wie Calocybe schon schrieb - jeder
ASM-Befehl einen festen Maschinencode hat).
Um eine EXE-Datei auszuführen (bzw. eigentlich jedes Programm unter irgendeinem OS) lädt das
Betriebssystem, also der Kernel, das Programm in den Speicher und übergibt dem Prozessor die
Speicheradresse der ersten Maschinencode-Anweisung. Der Prozessor beginnt dann an dieser Stelle
und arbeitet die Maschinencodes nach und nach ab, bis er auf eine Anweisung trifft, die diese Abarbeitung
beendet (hm, ein einfacher Interrupt schätze ich, kann mich aber auch irren).
Das Betriebssystem tut also überhaupt nichts weiteres, um dem Prozessor irgendwie den Maschinencode
zur Verfügung zu stellen oder nochmal zu interpretieren und dann entsprechende Prozessor-Befehle
auszuführen.
bye, Frank!
ps. Das ist alles schon relativ lange her. Schlagt mich nicht, wenn ich jetzt teilweise Müll erzählt habe ;)