Kann man im Binärcode programme schreiben?

... komplette Frage anzeigen

6 Antworten

Doch, aber Assembler ist fast das gleiche. :)

Wenn man mal das Wikipedia-Beispiel aufgreift, dann entspricht 10110000 01100001 dem Assembler-Befehl "mov al, 61h".

https://de.wikipedia.org/wiki/Assemblersprache#Beschreibung

Programmieren kannst du das in jedem beliebigen Binäreditor. Compiler von höheren Sprachen übersetzen einfach z.B. einen C-Befehl in mehrere Assembler-Befehle bzw. in Binärcode.

Antwort bewerten Vielen Dank für Deine Bewertung

Ich habe früher rein im Hexeditor programmiert. Aber nur aus Jux und Dallerei, da man dabei mit den Adressen schnell durcheinander kommt, und für ernsthaftes Programmieren ist Assembler einfach komfortabler.

Ich gucke mir aber oft Binärcode an, und den muss ich oftmals gar nicht mehr disassemblieren, um ihn zu verstehen. Wenn da "31 C0", "50" oder "83 EF 01" steht, dann ist meistens völlig klar, was der Programmteil da eigentlich gerade tut.

Ich muss aber zugeben, dass mir das nur bei x86, x64 und ARM gelingt, auch wenn ich des Öfteren an anderen Plattformen, Microcontrollern und embedded Systemen arbeite. Da ich jedoch mit den erst genannten Drei am häufigsten in Kontakt komme, übt das dann natürlich am meisten.

Und um auf deine Frage zurück zu kommen: Ob ein Byte jetzt in Hex oder Binär dargestellt wird, ändern ja am eigentlich Wert nichts. Allerdings ist Hex für Menschen um Längen besser lesbar. Die meisten Hex-Editoren lassen sich zwar auch auf eine rein binäre Darstellung umstellen, aber eigentlich benötige ich dieses Feature nie.

Also ja: Ich glaube, dass ich sehr einfache Progrämmchen wie "Hello World" oder ein einfaches Additionsprogramm auch rein binär hinbekommen würde. Aber evtl. nicht beim ersten Versuch und schon gar keine umfangreicheren Programme.

Mit einem Hexeditor hingegen würde ich es bestimmt auch beim ersten Versuch schaffen, aber rein binär möchte ich wetten, dass sich da sofort Flüchtigkeitsfehler einschleichen ... nur Null und Eins ist einfach zu einseitig für mein Gehirn. :)

Auf jeden Fall ist es für einige Aufgaben sehr hilfreich, Maschinencode in Hex-Form lesen zu können (vor allem ARM ist hier wesentlich einfacher als x86 oder x64), aber erstens braucht das kaum jemand, und zweitens ziehe ich C, C++, C#, Java, Python, Ruby, Bash, etc. dann doch vor.

Wenn man es aber wirklich drauf anlegt, und sich ein paar Tage bis Wochen intensiv auf einen Binär-Programmier-Wettbewerb vorbereiten würde, gibt es sicherlich viele Leute, die das könnten. Für jemanden, der Assembler kann, ist das dann eigentlich nur noch eine Fleißarbeit ... eine ziemlich sinnlose Fleißarbeit. :)

Antwort bewerten Vielen Dank für Deine Bewertung

<

p>Man kann in Binärcode programmieren. Bei den allerersten Computern wurde das gemacht. Diese Programmierung ist extrem zeitaufwendig und fehleranfällig. Deshalb wurden Assembler erfunden. Dabei entspricht jedem Binärbefehl ein Assemblerbefehl. Für jeden Mikroprozessor und Mikrocontroller gibt es Dokumentationen mit der Zuordnung Binärbefehl zu Assemblerbefehl mit den zugehörigen Parametern. Zusätzlich bieten Assembler einige Vereinfachungen gegenüber Binärcode, wie Makros. Mein erstes Mikroprozessorexperimentiersystem hatte ich in Binärcode programmiert. Für kompliziertere Lösungen sind Binärcode und Assembler wegen des hohen Zeitaufwandes und der Fehlerträchtigkeit ungeeignet. Heutzutage werden nur noch grundlegende, hardwarenahe Ansteuerroutinen für Baugruppen oder Erweiterungskarten damit programmiert. Alle weitergehenden Probleme werden mit höheren Programmiersprachen gelöst.Eine Beschreibung zu Assembler und Binärcode findet sich hier "The art of assembler programming" (AoA) http://www.plantation-productions.com/Webster/.</p>

Antwort bewerten Vielen Dank für Deine Bewertung

Klar kannst du das, im Grunde sind Befehle in C++ nichts anderes als 0 und 1. natürlich ist es viel einfacher so zu programmieren als mit 0 und 1 da jeder Befehl auf den ersten Blick für uns eine total sinnlose Folge von 0 und 1 ist.

Antwort bewerten Vielen Dank für Deine Bewertung

Theoretisch könnte man im Binärcode Programme schreiben. Ich meine aber, dass das schon niemand tut. Höchstens schreibt man in Assembly. 

Antwort bewerten Vielen Dank für Deine Bewertung