Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Fireball

Alter Hase

  • »Fireball« ist der Autor dieses Themas

Beiträge: 415

Wohnort: Werne

Beruf: Dipl. Inf.

  • Private Nachricht senden

1

21.09.2015, 10:33

Eine nicht ganz ernst gemeinte Frage: "Kann man binär programmieren?"

Hallo zusammen,

ich habe mich heute gefragt, nachdem ich mich am Wochenende mit Turbo Assembler unter DOS beschäftigt habe, ob es nicht möglich wäre den Computer ohne einen Compiler zu programmieren. Das ist natürlich totaler Wahnsinn, deswegen poste ich auch hier im Off Topic Bereich.

Der Linker macht ja nichts anderes, als die im Assembler eingegebenen Befehle in diese Zahlen (0 und 1) umzuwandeln.

Im Netzt habe ich schon Hinweise darauf gefunden, dass es mit einem HEX Editor möglich sein soll, dass habe ich aber noch nicht ausprobiert. Ich kann mir das aber nicht wirklich vorstellen, weil ich annehme, dass der Linker doch noch etwas Code hinzu dichtet, damit eine Exe Datei wirklich ausführbar wird.

Schöne Grüße

Fb

Edit: https://de.wikipedia.org/wiki/Maschinensprache

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Fireball« (21.09.2015, 12:44)


@zimmer

Alter Hase

Beiträge: 1 135

Wohnort: NRW Germany

  • Private Nachricht senden

2

21.09.2015, 10:53

dann müsste es sich aber lohnen, selbst bei der Programmirung eines arduino nano für ein servo motor müsste man besser sein als der 5 zeilen code in C

TGGC

1x Rätselkönig

Beiträge: 1 799

Beruf: Software Entwickler

  • Private Nachricht senden

3

21.09.2015, 10:54

Man koennte auch so Papierstreifen machen und dort immer Loecher reinmachen, wenn man eine 1 meint und kein Loch bei einer 0. Aber da spwas natuerlich voellig unmoeglich ist, hat das natuerlich auch noch nie jemand gemacht...

Mabenan

Frischling

Beiträge: 24

Wohnort: Bayern

Beruf: IT-Berater

  • Private Nachricht senden

4

21.09.2015, 10:55

Das Wort nachdem du suchst ist Maschinensprache kannst ja mal schauen ob du irgendwo noch einen 70-80 Jährigen Programmierer findest der dir das erklärt.

5

21.09.2015, 10:55

Du nimmst deinen hexeditor und schreibst deine bits rein und speicherst das dann als exe oder sonstwas.

Tobiking

1x Rätselkönig

  • Private Nachricht senden

6

21.09.2015, 10:57

Der Linker macht ja nichts anderes, als die im Assembler eingegebenen Befehle in diese Zahlen (0 und 1) umzuwandeln.

Das macht der Assembler, nicht der Linker. Üblicherweise kommen aus dem Assembler wie beim Compiler object files die benannte Stücke Maschinencode enthalten. Der Linker nimmt dann die object files, löst Verweise auf eben diese Namen auf und hängt dann alles aneinander zu einer Binary bzw. Executable.

Im Netzt habe ich schon Hinweise darauf gefunden, dass es mit einem HEX Editor möglich sein soll, dass habe ich aber noch nicht ausprobiert. Ich kann mir das aber nicht wirklich vorstellen, weil ich annehme, dass der Linker doch noch etwas Code hinzu dichtet, damit eine Exe Datei wirklich ausführbar wird.

Eine Anwendung, die in einem Betriebssystemkontext läuft, bekommt üblicherweise noch Bibliotheken dazu gelinkt die etwas startup Code (Startparameter, Stack setup etc.) und die Syscalls enthalten. In reinen Assembleranwendungen kann man das durchaus selber implementieren. Dann muss man nur sehen das man das Dateiformat der Executable erhält.

Wenn man aber etwas programmiert das ohne Betriebssystem sieht das noch etwas anders aus. Ein Stage 1 Bootloader bei x86 ist z.B. einfach nur ein 512 Byte Binary bei dem die Ausführung vorne beginnt und am Ende ein magic code stehen muss. Das kann man durchaus mit einem Hex Editor schreiben, vorausgesetzt man hat Spaß daran die Maschinenbefehle aus Tabellen abzuschreiben. An der Stelle macht der Einsatz eines Linkers auch nicht mehr sehr viel Sinn.

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

7

21.09.2015, 11:05

Man könnte natürlich auch die 1en und 0en passend in in die exe Datei schreiben. Wie gesagt an sich ist das ziemlich schwachsinnig aber das hattest du ja auch schon vermutet.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

TrommlBomml

Community-Fossil

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

8

21.09.2015, 11:26

Ich hattes aber tatsächlich im Studium kurz gehabt, direkt binärcodes für einen einfachen 8-Bit Prozessor in den Speicher zu schreiben. Einfach, damit man es mal gemacht hat. Aber naja, für mehr taugt es auch nicht wirklich. Assembler ist ja schon furchtbar anstrengend ;)

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

9

21.09.2015, 11:30

Assembler macht doch noch durchaus Spaß. :)
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

10

21.09.2015, 12:11

Ach du findest Zeitverschwendung äquivalent zum Selbstmord? Merkwürdige Weltanschauung.


Ich kann mir das aber nicht wirklich vorstellen, weil ich annehme, dass der Linker doch noch etwas Code hinzu dichtet, damit eine Exe Datei wirklich ausführbar wird.
Das mag für Exe-Header stimmen. Für .COM-Files geht das aber direkt. Diese besitzen keinen Header, sondern einfach nur ausführbaren Code.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »BlueCobold« (21.09.2015, 12:21)


Werbeanzeige