Was ist Maschinensprache?

5 Antworten

Maschinensprache ist die Sprache, welche als einzige durch die Hardware deines Computers verstanden wird.

Jedes in einer anderen Programmiersprache geschriebene Programm muss in sie übersetzt werden. Das zu tun ist Aufgabe sog. Compiler.

Niemand programmiert heute noch in Maschinensprache, da das um Welten zu kompliziert wäre.

CPUs haben einen gewissen befehlsatz. Diese befehle unterscheiden sich von architektur zu architektur.

Die befehle sind in der architektur der CPU beschrieben und werden in form von Binärcodes (In Hexadezimalschreibweise dargestellt.) dem computer zur verfügung gestellt.

Ein beispiel (Frei erfunden) wäre der befehl: A8 (In Hex schreibweise. Jede stelle steht dabei für 4 bit. In Binär wäre dasl also eine 8 bit lange binärzahl)

Dies wäre z.b. der Befehl für ein ADD dieser erwartet nun sagen wir 2 zahlen.

z.b. A80101 Würde: die zahlen 1 und 1 addieren und den wert im akkumulator lassen.

Machienencode ist nun eine abfolge genau dieser Befehle an die CPU. Die schlichtweg einfach in reinen binärdaten in der datei stehen. Der rechner selbst springt dann einfach von befehl zu befehl weiter. Bei A8 weiss der rechner ja das die nächsten 16 bit im binärcode für 2 zahlen stehen. Nach diesen 16bit erwartet er einfach den neuen befehl.

Auf dieser ebende drauf Befindet sich dann die Assemblersprache. Diese ist eine Maschiennahe Programmiesprache. Aber keine maschienensprache mehr.

Hier weden die einzelnen BefehlsCodes. (Sogenannte OPCodes) durch menschenlesbare dinge ersetzt.

Als Beispiel:

Anstatt A80101 könnte mann schreiben:

ADD 1 1

Und dann in der nächsten zeile mit nem neuen befehl weitermachen.

Assembler unterstützt zusätzlich noch Markierungen. Also Labels.

z.b.

MeineTolleRoutine:

ADD 1 1

STA $12

noch mehr code.

JMP MeineTolleRoutine

Die JMP anweisung (Jump) wäre ein code welche den Computer sagt wo der nächste befehl zu finden ist. "MeineTolleRoutine" wird dann durch die adresse ersetzt wo der befehl im speicher zu finden ist.

Das macht der Assembler alles für einen. Würde man in Maschienensprache schreiben müsste man diese adresse wissen. (Die sich verändern kann falls man vor "meine tolle routine" was man code ändert)

Jegliche software wird am ende im endeffekt in genau diesen Mschienencode umgesetzt. Endweder direkt durch nen Compiler. Oder indirekt durch eine weitere software die das während der ausführung macht. z.b. Java oder .Net.

Woher ich das weiß:Studium / Ausbildung – Bachelor

Sprache die nur ein Computer versteht.

Man schreibt in einer Programmiersprache z.B.: C ein Programm, der Computer kann damit erst mal nichts anfangen deswegen wird er durch ein Compiler in Maschinensprache umgewandelt. Die dann der Computer verstehen kann, sodass der Computer weiß, was er machen muss um ein Programm zum Laufen zu bringen.

So nannte man früher den reinen Code für einen Computer, ich glaube Assembler fällt auch da darunter.

Man könnte auch z.b. auf dem C64 Programme in basic oder Pascal schreiben und diese dann kompilieren, sodass sie für den Computer verständlich waren.

Als MAschinensprache bezeichnet man den Programmiercode, welche eine CPU (der eigentliche Computer im Compter) direkt versteht, ohne dafür einen Compiler zu benötigen.

Mann nennt diese auch "Assembler". und Assembler ist nichts anderes als eine Ersetzung binärer Befehle durch dem menschen verständliche Wörter - wie zum Beispiel

JMP 100 =>> Springe zur Speicherstelle 100