Zum Inhalt springen

Maschinensprache

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 18. Januar 2003 um 13:23 Uhr durch OWeh (Diskussion | Beiträge). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Unter Maschinensprache versteht man die (Programmier)-Sprache, die ein Mikroprozessor direkt ausführen kann. Der synonyme Begriff Maschinencode macht deutlich, daß es sich nicht um eine für den Menschen lesbare Sprache handelt.

Unterschiede zu den Hochsprachen:

  • Maschinensprachen bieten nur sehr einfache Befehle
  • Ein Programm kann nur auf genau dem Mikroprozessor ablaufen, für dessen Maschinensprache es programmiert wurde.

Überblick über die typische Funktionalität einer Maschinensprache:
Die Maschinensprache enthält die direkt vom Prozessor verstandenen Befehle. Das Programmiermodell eines Computers beschreibt die für die Programmierung relevanten Hardware-Details. Typischerweise hat ein Computer einige Register, also Speicher in die 8,16, 32 oder 64 Bit Daten gespeichert werden können. Der Mikroprozessor kann über den Adressbus und Datenbus seinen angeschlossenen Hauptspeicher, sowie Schnittstellen zu externen Geräten ansprechen.
Die Maschinen-Befehle sind meist der folgenden Art:
Lade eine Zahl von Speicherstelle xxxx in das Register yyyy
Zähle den Inhalt des Registers yyyy um eines hoch
Speichere den Inhalt des Registers yyyy in die Speicherzelle, deren Nummer im Register zzzz steht
Addiere (Subtrahiere,Multipliziere,Dividiere) Register yyyy zum Register zzzz
Setze die Abarbeitung des Programms an der Stelle xyz fort(Sprung)
...

Programmerstellung:
Intern ist jeder Befehl der Maschinensprache durch eine Zahl codiert; eine sinnvolle Folge von solchen Zahlencodes im Hauptspeicher bzw. als Datei gespeichert bildet demnach ein Programm. Es gibt nun verschiedene Arten, solche Programme zu erstellen:

  • Über einen HEX-Editor direkt den Zahlen-Code schreiben. (sehr kryptisch und unpraktisch)
  • Mit einem Assembler: Assemblersprachen formulieren die Prozessorbefehle in einer einfachen, lesbaren Syntax. Dieser Quelltext wird danach vom Assembler, einer Software, in den Maschinencode konvertiert.
  • Mit einer Hochsprache wird das Programm geschrieben, danach von einem Compiler compiliert und dann gespeichert.
  • Alternativ können Programme in einer Hochsprache auch in einen Zwischenkode übersetzt oder auch direkt durch einen Interpreter abgearbeitet werden.

Manche Architekturen verfügen nicht über Register, die Datenverarbeitung läuft in diesen Fällen in einem Stapel-, einem Variablen-Kontext und dem Hauptspeicher ab.