Theorie:  EinleitungMaschinenspracheAssemblerZahlensystemeRAM-AdressenBWSDebugCPU-RegisterEinfache BefehleStringbefehleInterruptsI/O-Ports
Versuch:  BWS1BWS2Hallo WeltBootsektorMBR
Nützlich: BefehlslistePAUSEFilter
Analyse:  Bootloader


Die Befehle einer CPU bestehen aus Bitfolgen. Die Gesamtheit aller Befehle, die eine CPU ausführen kann, nennt man „Maschinensprache“. Maschinensprache ist die einzige Sprache, die der Prozessor unmittelbar versteht. Jedes Programm muss letztlich in Maschinensprache umgewandelt (übersetzt) werden, gleichgültig welche höhere Programmiersprache verwendet wird. Einerseits ist Maschinensprache die „niederste“ Programmiersprache, gleichzeitig ist sie die leistungsfähigste.

Wofür verwendet man Maschinensprache?

Bearbeiten

Wofür verwendet man heutzutage noch Maschinensprache, wo es doch so komfortable Hochsprachen wie C++, Pascal, Java und andere gibt?

  • 1. Das BIOS und ein Teil des Kerns jedes Betriebssystems sind in Maschinensprache geschrieben.
  • 2. Treiber werden teilweise in Maschinensprache geschrieben.
  • 3. Anspruchsvolle Programme (z. B. Spiele) werden meist erst in einer Hochsprache geschrieben – und laufen möglicherweise unzumutbar langsam. Ersetzt man später einige kritische (die am häufigsten durchlaufenen) Programmteile durch Maschinensprache, wird das gesamte Programm wesentlich schneller. Ersetzt man nur ein Prozent des Programms (aber an den richtigen Stellen) durch Maschinencode, kann die Geschwindigkeit der Programmausführung um den Faktor 10 bis 100 steigen!
  • 4. Jede Hochsprache, jeder Compiler erzeugt letztlich ein Programm in Maschinensprache.
  • 5. Bei industriellen Steuerungen mit hohen Echtzeit-Anforderungen wird mitunter Maschinensprache verwendet.
  • 6. Beschäftigung mit Maschinensprache erfordert und fördert das Verständnis für das Funktionieren der Hardware.

Wofür verwendet man Maschinensprache besser nicht?

Bearbeiten

Aktuelle Betriebssysteme und Office-Pakete bestehen aus einigen hundert Millionen Befehlen in Maschinensprache. Maschinensprache hat keine Strukturierungsmittel und wird daher selbst für Profis zunehmend unübersichtlich und unflexibel, wenn die Befehlsanzahl die tausend erreicht.

Assembler ist viel einfacher

Bearbeiten

Ja, das stimmt natürlich. Ein Programm in Maschinensprache zu schreiben, wenn man einen Assembler hat, ist nicht sinnvoll. Aber auch wenn Sie Ihr Programm „in Assembler“ schreiben, erzeugen der Compiler und der Linker letztlich doch ein Programm in Maschinensprache. Vermutlich wird Ihr Programm zunächst nicht perfekt funktionieren, und Sie müssen es testen. In diesem Buch können Sie an einfachsten Programmen lernen, wie man Programme testen kann, die in Maschinensprache geschrieben sind.

Ist die Verwendung von Maschinensprache gefährlich?

Bearbeiten

Höhere Programmiersprachen wirken wie ein Filter: Sie erschweren oder verhindern Konstruktionen, die gefährlich sind. Semantik- und andere Prüfungen decken zahlreiche Flüchtigkeitsfehler auf. Vor fehlerhaften oder böswilligen Maschinenspracheprogrammen gibt es kaum einen Schutz (außer Sorgfalt und Umsicht), wie zahllose Viren, Würmer und andere Schädlinge beweisen.

Wie gefährlich?

Bearbeiten

Es kommt darauf an, was Sie programmieren. Das DOS-Fenster wird von Windows gut überwacht. Wenn Ihr Programm beispielsweise den zulässigen Speicherbereich verlässt oder das Betriebssystem angreift, wird Windows das Fenster schließen, meist mit einer Fehlermeldung. Wenn es zu einem Absturz kommt, hilft meist ein Neustart des Betriebssystems. Wenn Ihr Programm Dateien lesen soll, kann es auch schon mal eine Datei überschreiben. Wenn Ihr Programm die Festplatte umstrukturieren soll, ist Datenverlust wahrscheinlich. Um größere Schäden anzurichten, müssen beim Programmierer zwei persönliche Eigenheiten zusammenkommen: beträchtliche Selbstüberschätzung und schlampige Arbeitsweise.

Schlussbemerkung

Bearbeiten

Wenn Sie in die Maschinensprachen-Programmierung einsteigen, werden Sie erschreckend oft die Tastenkombination Strg, Alt und Entf ("Klammergriff") drücken müssen, manchmal auch vergebens. Die Hoffnung, dass das mit zunehmender Erfahrung seltener wird, ist leider völlig unbegründet.