Für was wird Maschinensprache angewendet?

... komplette Frage anzeigen

7 Antworten

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.

Antwort bewerten Vielen Dank für Deine Bewertung

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.

Antwort bewerten Vielen Dank für Deine Bewertung

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.

Antwort bewerten Vielen Dank für Deine Bewertung

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! ;)

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von 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

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

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von 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
Kommentar von Herb3472
04.10.2016, 23:34

Richtig, sorry.

1

Du arbeitest gerade damit ! Ohne Maschinensprache könntest du hier nicht schreiben ! Hier mit dem Dualen Zahlensystem. In anderen bereichen mit anderen " Sprachen " .

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?