Spielend Assembler lernen

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Spielend Assembler lernen

      Hallo ihr Lieben,

      ich habe mal eine Frage an die Leute hier, welche sich mit Assembler auskennen. Ich bin gestern durch das aktuelle Humble Bundle auf das Spiel Shenzen I/O aufmerksam geworden.

      In dem Spiel geht es darum, dass man ein Programmierer im Shenzen Konzern ist und per Mail immer komplexer werdende Aufgaben bekommt welche man lösen muss. So muss man zum Beispiel verschiedene LED´s in unterschiedlichen Intervallen blinken lassen und baut dazu Chips auf die Platine und programmiert diese tatsächlich mit Assemblercode. Man bekommt im Spiel keinerlei Hilfe, sondern nur eine 50-seitige Dokumentation und Schaltspezifikationen als PDF.

      Ziel ist es nicht nur die Vorgaben zu erfüllen, sondern das ganze auch mit so wenig Code und so wenig Komponenten wie möglich umzusetzen. Ebenso werden die Schaltungen dann durch mittlerweile 80 Testcases geprüft!

      Meine Frage ist, für jemanden der sich schon mit Assembler auskennt, kann man sich mit dem was in dem Spiel getan wird, tatsächlich die Sprache spielerisch beibringen oder ist und bleibt das alles nur ein Spiel?

      PS: Das mit den LED´s ist ein Minimalbeispiel, da gibt es hunderte Komponenten, LCD´s zig Chiptypen usw. Bei Youtube gibt es Typen, die damit ganze Tetris- und Rennspiele im Spiel realisiert haben.
    • Ja, es ist zwar Assembler Code und vielleicht ein spaßiger Einstieg, jedoch würde ich nicht darauf bauen.
      Assembler ist ja letztendlich nur eine lesbare Form des Maschinencodes. Die Sprache ist dementsprechend wirklich
      nur auf Behlen und Labels ausgelegt. Du solltest für das Lernen von Assembly auch eine objektorientiere Sprache wie C nutzen, sodass
      du Wrapper bilden kannst.

      Versuch dann einfach immer komplexere C Codes in Assembly zu übersetzen.
      Stupide Assembly lernen ist zwar nicht immer ganz spaßig, da man echt viel umdenken muss, jedoch
      kann man dafür ein optimales Programm mit schreiben.

      Es kommt halt drauf an, wofür du Assembly brauchst.
    • Ich selber brauch es nicht wirklich, bin aber immer daran interessiert was zu lernen. Es gab auch schon Momente wo es mir natürlich mal vor die Füße gefallen ist und wenn das wieder mal passiert, wäre ich schon glücklich erahnen zu können, was da im Code passiert. Ich habe nicht vor ein Programm mit Assembler zu schreiben, aber so grob lesen und verstehen würde ich es gern können.
    • Fürs grobe lesen und verstehen sollte es dann ausreichen, wie effektiv
      es im Spiel gelöst wird, weiß ich nicht, da ja mehrere Prozessoren in einem
      Kreislauf simuliert werden, wenn ich das richtig sehe. Ist vielleicht nicht ganz entsprechend der Wahrheit.
      Da ja ein Assembly Compiler auf wirklich ein bestimmtes Betriebssystem und Prozessor Struktur angepasst ist

      Am einfachsten ist es Assembly mit einem guten Compiler (z.B. NASM) zu lernen und dann mit GCC halt C Code generieren, der
      Assembly "functions" ausführt und Ergebnisse im Print vergleicht, so siehst du ob dein Code erfolgreich ist.

      Wenn dich schon Assembly interessiert, solltest du halt auch paar allgemeine Sachen lernen; Binärzahlen, Bytecode, Compiler, Stacks usw.