Für was wird Maschinensprache angewendet?

6 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Das ist die einzige Sprache, die ein Prozessor wirklich versteht. Deshalb werden alle Programme (sofern sie nicht "interpretiert" werden) letztich in Maschinensprache übersetzt.

Als Mensch kriegt man den direkten Maschinencode normalerweise nur zu Gesicht, wenn man entweder einen neugierigen Blick hineinwirft oder den "Ur-Assembler" für einen neuen Prozessor zusammenbaut, der die einigermaßen menschenlesbaren Assemblerbefehle (Kürzel für Maschinenbefehle) 1:1 in Maschinencode übersetzt. Alle weiteren Sprachübersetzer bauen auf "primitiveren" Übersetzern auf, letztlich auf diesem.

Woher ich das weiß:Berufserfahrung – Software-Entwickler

Man benutzt Maschinensprache zum Umprogrammieren (auch "Cracken" genannt) von Software, wenn man nicht gerade einen komfortablen Debugger mit Disassembler vor der Nase hat.

Dafür reicht dann im einfachsten Fall ein simpler Hexeditor aus, eignet sich aber nur für einfache Aufgaben. (Kenntnisse in Maschinensprache vorausgesetzt. Assembler alleine reicht hier nicht mehr!)

Ich hatte mir vor Ewigkeiten mal als Schüler das Spiel "Moorhuhnjagd" damit "gepatcht", sodass ich bei Treffern die daneben gingen (z. B. den Himmel) trotzdem immer 25 Punkte bekommen habe. Dafür reichte mir damals HexWorkShop unter WindowsME .... Das waren noch Zeiten ... :)

Aber normalerweise will man das nicht. Es ist einfach unpraktisch und dient nur als Notlösung.

Assembler hingegen ist sehr sinnvoll um z. B. zu überprüfen, ob der Compiler vernünftigen Code erzeugt hat oder auch für Inline-Optimierungen. Erfordert aber - verglichen mit anderen Programmiersprachen - enorm viel Einarbeitungszeit und Kenntnisse über Hardware, Betriebssysteme, und deren Bibliotheken.

Verwechsle also bitte nicht "Maschinensprache" und "Assembler"!

Aber für beides gilt: Viele Programmierer hassen es, bzw. verstehen es nicht nicht richtig, halten es für kompliziert oder veraltet. Nichts davon stimmt, und wahre Cracks lieben mindestens Assembler! ;)

TeeTier  05.10.2016, 02:40

PS: Ich vermute gerade, dass du deine Frage falsch formuliert hast. Willst du wirklich wissen, "wofür man Maschinensprache braucht" oder nicht doch eher "was Maschinensprache ist"?

Sorry, falls ich dich falsch verstanden haben sollte. Naja, die anderen haben es ja halbwegs akzeptabel erklärt. :)

0

Ich weiß ja nicht, ob ich da was missverstanden habe, aber "Maschinensprache" findet sich doch in fast jeder Software. Anders würden Programme doch gar nicht funktionieren, da z.B der computer nichts verstehen würde. Man verwendet sogenannte höhere Programmiersprachen wie z.B C oder Java, weil diese einfacher und für den menschen logischer sind. Zudem sind sie für größere Projekt besser geeignet. Trotzdem gibt es bei jeder Programmiersprache Compiler, Assembler oder Linkers, die das ganze in Maschinensprache umwandeln damit z.B der Computerspiele weiß was er machen muss.

1. In kleinen, energiesparenden Systemen, wo mit der Software ein schwacher Rechner optimal ausgereizt werden soll, oder

2. Kleine Bestandteile von größerer Software, bei denen es sehr auf die Geschwindigkeit ankommt. Der Rest dieser Software wird dann in anderen Sprachen geschrieben.

Das Rechenwerk selbst (CPU) wird intern in Assembler programmiert. Und zeitkritische, hardwarenahe Anwendungen. Außerdem kleine Logikschaltungen.

W00dp3ckr  04.10.2016, 23:30

Nein, das Rechenwerk selbst wird zumeist in noch einem anderen Code (Microcode) programmiert. Auch eine Maschinensprache, aber eine andere als die, die der Prozessor dann am Ende hat.

https://de.wikipedia.org/wiki/Mikrocode

1
Herb3472  04.10.2016, 23:34

Richtig, sorry.

1