mit Binärcode programmieren
Hallo, ich würde gerne wissen, ob es möglich ist in Binärcode zu Programmieren. Ich kann Texte in Binärcode übersätzen, jedoch weiss ich nicht wohin damit. Wie sage ich dem Computer das er die einsen und nullen ausführen sollm, und es kein Text ist? Gibt es dafür sowas wie für C++ einen compiler (also in die richtung) oder wie läuft das? Vielen Dank Christian
5 Antworten
Ja, das geht, und es war in der Pionierzeit gar keine ungewöhnliche Art, dem Rechner Anweisungen zu geben. Auf den Fronttafeln der Computer befanden sich dafür Reihen von Kippschaltern, mit denen je ein Bit eines Prozessorregisters gesetzt wurde, nebst den entsprechenden Reihen von Lämpchen zur Anzeige des logischen Status.
Schön zu sehen z.B. hier auf dem IMSAI 8080:
http://en.wikipedia.org/wiki/IMSAI_8080
Natürlich wurden keine ganzen Programme auf diese Weise geschrieben. Die tippte man auf Lochkarten oder, bei kleinen Kisten wie dem IMSAI, auf Fernschreiber-Lochstreifen. Schon deswegen, weil man sie dann auf einem Speichermedium hatte und aufbewahren konnte. Aber zum Experimentieren oder um mal rasch ein paar Bits auszubessern, waren die Schalter der direkteste mögliche Weg.
...aber hier kann man das Anleitungsbuch herunterladen:
http://www.classiccmp.org/dunfield/imsai/imsai.pdf
Auf Seite 35 (nach der Numerierung auf dem Papier) sind zwei kleine Programme gelistet, die man zum Test nach dem Zusammenbau eingibt. Das eine ist sieben Byte lang, das andere acht Byte. Anschließend wird erklärt, wie man den Rechner direkt auf der Ebene der einzelnen Registerbits und Busleitungen steuert.
Nun, kleene einwendung an die anderen, was er hier meint ist noch nichtmal Assambler sondern er meint den Maschienen code.
Und ja es ist möglich nur im Binärcode zu schreiben, aber das würde bedeuten das du jahrhunderte für normale programmierungen brauchst, bzw sehr viel geduld bei fehlersuche und sagen wir sehr schlau sein musst:
Warum, einfach gesagt,
na weil du für jeden Code/Befehl die passende Binärfolge plus das rechnen(math) mit Binär können müsstest.
Also dein unterfangen so zu schreiben ist, ähm sehr unmöglich bei Computerprogrammen. es sei den es sollen kleine Hardware damit betrieben werden, z.B ansteuern von kleinen Display´s mit Microprozessoren werden um die zeichen festzulegen die Zeichensatzbefehle mit Binärcode wiedergegebn. dort kannst du dich einklingen und deine Persönliche Note in gewissen rahmen hinterlassen, aber nur begrenzt
2.tes Beispiel, ansteuern von LED, dort kannst du deinen eigenen steuerbefehl mittels Binärcode hinterlegen, aber das ist halt fürn anfang aufwändig und wird immer mit mindestens Assambler-Sprache kombiniert.
Man kann jetzt sagen, für deine Minianwendungen kann was perönliches mit Binär geschrieben werden, aber jeder greift auf ein Befehl zurück nur um 5 stunden Programmieren zu sparen plus fehler.
Wenn du verstehen willst wie ein PC arbeitet, und Microcontroller dich auch interessieren, den damit kann man tolle sachen machen, dann kannst du auch das
AVR-Programmierung 1: Grundlagen und der Aufbau von Programmstrukturen
Ist en Buch was sowas etwas erklärt is aber teuer.
Buch besorgen, da wird erstmal erklärt wie man mit 0 und 1 Rechnet. Sprich was der Befehl in Hex und Binär aussieht, plus wie Binär verarbeitet wird. Da die Microcontroller auch I/O-Pins haben veranschaulicht das auch noch besser was passiert.
So ziemlich alle C/C++ -Compiler haben die Möglichkeit, Assemblercode einzubinden, oder ein Programm komplett mit Assembler zu schreiben.
So kannst du zumindest einmal direkten Maschinencode erzeugen und ausführen.
Wenn du aber und mir ist unklar, warum du das wollen solltest reinen Maschinencode schreiben und ausführen willst, könntest du:
a) Direkt mit einem Hexadezimalen Textedtor eine ausführbare Binärdatei schreiben, dazu musst du aber den execuatable-Header der Plattform und etwaige andere Formatanomalien kennen.
b) Du könntest in C/C++ ein byte-Array erstellen, das den Code des auszuführenden enthält und dann über Assemblerinstruktion an den Anfang dieses Arrays springen.
Beides nicht wirklich zu empfehlen.
also c++ habe ich bereits gelernt, und nurn will ich halt wissen , wie der computer meinen text (C++) verarbeitet und was der compiler macht... ich will das Prinziep das computers von grund auf verstehen das ist der Grung :D Vielen dank für die schnelle Antwort!
Warum lernst du dann nicht Assemblersprache? In Maschinensprache zu schreiben ist extrem schwer und für einen Anfänger unnötig viel Aufwand.
Das ist die Assembler Programmierung.
Bitte Antworte nicht wenn du keine Ahnung davon hast. Ich sage nur: 0100010101110010011100110111010000100000011101010110010101100010011001010111001001101100011001010110011101100101011011100010110000100000011001000110000101101110011011100010000001110011011000110110100001110010011001010110100101100010011001010110111000100001
Eine CPU versteht binäre Op-Codes, keinen binären Text.
Ein binärer Befehl, den die CPU versteht. Beschäftige Dich mal mit Assembler.
Hier beschreibt ein Freund dieser klassischen Arbeitsweise, wie er ein (nicht allzu langes) Programm von Hand zuerst in Assemblercode und dann in Nullen und Einsen übersetzt und es dann Bit für Bit mit den Kippschaltern in den IMSAI eingegeben hat:
http://techtinkering.com/2008/11/05/writing-my-first-program-to-toggle-in-to-the-imsai-8080/
Du findest auf der Seite auch Links zu Codetabellen für den 8080, den nach heutigen Maßstäben recht einfachen Prozessorchip. Der Link zum Anleitungsbuch für den IMSAI 8080 funktioniert nicht mehr...