Du möchtest das Video an jemanden weiterleiten, die oder der aber lieber liest? Dann findest Du den passenden Artikel zum Video bei Heise Developer: www.heise.de/blog/Spielerisch-Assembler-lernen-9817184.html
Ich kann an dieser Stelle das Spiel "Turing Complete" empfehlen, bei dem man anfänglich von Strom an/aus und Transistoren langsam über verschiedene Kapitel zu einem kompletten Computer bestehend aus CPU mit ALU und Registern und Arbeitsspeicher kommt. Dort habe ich das ganze spielerisch gelernt. Am Ende programmiert man mit eigener Assemblersprache diesen Computer. Wirklich sehr zu empfehlen. 🙂
Mein Erstkontakt mit Assembler war in der Schule (Commodore PET2001, 6502). Später, Mitte der 1980er Jahre, habe ich Triumph Adler Fakturierautomaten und Treiber für spezielle ISA-Karten in Assembler programmiert. Aus meiner Sicht ist Assembler an sich gar nicht so schwierig. Die eigentliche Herausforderung besteht darin, die Hardware zu kennen, Datenblätter zu verstehen und in Code umsetzen zu können. Insbesondere bei der Embedded-Programmierung in C waren Assembler-Kenntnisse für mich hilfreich, abgesehen von der „weird“ Syntax mit „*“ und „&“, die ich bis heute immer wieder nachschlagen muss, fühlt sich der Umgang mit Pointern, Call-By-Reference / Call-By-Value, logischen Operatoren, Call-/Interrupt- Tables, u. s. w. irgendwie natürlich an.
Das ist ehrlich gesagt eine gute Frage - ich *glaube*, dass die deutsche Ausgabe die Originalausgabe ist, da sich im Buch nirgends ein Verweis auf eine Übersetzung finden lässt.
@@thenativeweb Ich wusste, dass die Frage kommen würde 🙂 - es ist die Originalausgabe, ich bin amerikanischer Abstammung, daher der komische Name. Sollte es eine englische Version geben - ich bin zweisprachig - wird das Ganze natürlich noch verwirrender ...
Hallo zusammen, ich finde das Buch sehr interessant. Was mich noch interessieren würde: Was für Hardware würde sich am besten eignen, um den Assembler-Code ausführen zu können? Brauche ich da eine spezielle Hardware oder gibt es auch entsprechende Emulatoren?
Es gibt beides - sowohl SBCs (Single Board Computer, ähnlich dem RPi) als auch Emulatoren. Ein guter Startpunkt dürfte zB github.com/riscvarchive/riscv-software-list sein
Eine Zielgruppe fehlt: Ich habe vor etlichen Jahren mit Assembler programmieren gelernt und das Buch interessiert mich, weil ich danach diese Sprache aus den Augen verloren habe. Nennen wir es also Nostalgie, deshalb stören mich deine Kritikpunkte nicht gar zu sehr. Auf jeden Fall vielen Dank für diese Buchvorstellung, das hätte ich sonst mit Sicherheit übersehen.
Naja Zielgruppe. Ist RISC nicht ein reduziertes instruction set? Das macht die Sache doch spannender, als für jeden edge-case einen eigene Befehl zusammen klöppeln zu müssen. Also weil's ab irgendeinem Punkt ein minimal mögliches Set ist und man dadurch bessere Chancen hat, wiederkehrende Muster im Code zu finden oder so.
Assembler ist auch heute noch esentiell: Wenn man beim Schreiben einer Codezeile nicht schon im Hinterkopf hat, welche Assemblerbefehle der Compiler daraus machen wird, kann man keinen wirklich effizienten Code schreiben. Der "Zwang", sich im Studium mit der Assemblerprogrammierung auseinanderzusetzen, hat also gute Gründe. Erst dieses Frühjahr hatte ich ein Projekt mit einem Cortex-M0-Controller, auf dem verschiedene Applikationen laufen sollten. Das vorgesehene Derivat hatte kein VTOR-Register, wie jeder professionelle Embedded C/C++-Entwickler nutze ich natürlich verschiedene Interrupts zur Synchronisation. Für den Aufruf der jeweils richtigen ISR mussten also die Vektoren dynamisch zur Laufzeit applikationsspezifisch verbogen werden, was ein knappes Duzend Assemblerzeilen erforderte (ich habe es generisch mit einer Prozedur für alle ISR implementiert). Noch nicht einmal ein Promille der Codezeilen insgesamt, aber ohne Assembler wäre das Problem überhaupt nicht lösbar gewesen.
Wenn hier schon spiele genannt werden, dann werft auch einen Blick auf human Ressource Machine. Kenne Touring Complete nicht, aber vom ersten Blick ist human Ressource Machine verspielter und humorvoller.
zu dem "spielerisch erlernen" für ich einmal das Spiel "Turing Complete" auf Steam empfehlen. hier geht es eigtl. um nichts anderes als das erlernen von Computer-Hardware bis hin zu Assembler, wie Detailgetreu die tatsächliche Befehle sind kann ich nicht genau sagen. Das Buch werde ich mir dennoch bestellen. 👍
Kennt jemand eine gute Einführung zum Programmieren einer NPU in c++? Dabei fände ich es gut, wenn es möglichst allgemein ist und nicht nur auf Bilder, Videos, Netze ... bezieht. (Weil ich gerne abschätzen würde, ob ich die NPU auch für andere Algorithmen benutzen kann).
Ich glaube, da ist etwas falsch rübergekommen - wir hatten vielmehr im Vorfeld die Diskussion, ob der Stil zu locker für ein Sachbuch ist angesichts der ganzen Anspielungen auf Dinge wie Star Wars (etwas versteckt, zugegeben) und Hamster. Abgesehen davon, dass ich der Letzte bin, der irgendwas mit Grammatik in egal welcher Variante erklären sollte 🙂