Hello, Guest the thread was viewed32k times and contains 463 replies

last post from TD1334 at the

Meine Einführung in C64 Maschinensprache / Assembler

  • Beistrich ist ein Austriazismus für Komma. Ich hab ernsthaft gedacht das wäre auch in Deutschland gebräuchlich. Klingt so sinnvoll.

    Nö, war mir jetzt nicht so bekannt. Ja, das war ein Punkt, den ich am Anfang beigesteuert hatte.

    Ob es jetzt die Lesbarkeit erhöht, weiß ich nicht. Zumindest für mich, glaube ich, macht das keinen Unterschied. Allerdings bin ich das auch gewohnt. Ich muss so vieles lesen, was viel schlechter geschrieben ist, als die Grammatikalischen "Fehler" und fehlende Kommas hier im Kurs. Hinzu kommt, dass das mit dem Komma in der neuen Rechtschreibung sowieso sehr flexibel ist.

    Also ich für meinen Teil kann sagen, dass es sehr verständlich ist. Für eine Veröffentlichung als Buch/Wiki wäre dann durchaus noch eine Überarbeitung des Satzbau und der Kommas sinnvoll. Es macht dann halt einen professionelleren Eindruck. Verstehen kann man es so aber auch. Vom geschriebenen her, könnte man das in der vorliegenen Sprache schon fast für ein Scriptum für ein Video verwenden. Es ist ja sehr "aus dem Mund" geschrieben.

  • Ja, das mit den Beistrichen muss ich mir beizeiten ebenfalls mal vornehmen.


    Also auf dem PC hab ich mir Assembler mit dem Buch von Peter Monadjemi beigebracht und so richtig angewandt dann durch die Bücher Turbo Pascal intern und PC intern 4 von Michael Tischer.


    Was Assembler auf dem C64 betrifft hab ich kurz mal in ein Tutorial auf YouTube reingeschaut und bin dadurch relativ schnell auf den Geschmack gekommen, selbst etwas in dieser Richtung zu machen. Eben genau so wie Du schreibst, durch Lernen und das Gelernte dann gleich aufzuschreiben. Dadurch kann man recht gut prüfen ob man die Sache wirklich verstanden hat.


    Der kurze Blick in das Tutorial auf YouTube war also der auslösende Moment, beigebracht habe ich mir im Grunde alles selber. Minimal dazu beigetragen haben zwar noch das Buch Assembler ist keine Alchemie und das Maschinensprache Buch zum C64, aber die beiden sind eher nicht so meine Favoriten. In Ersteres hab ich große Hoffnungen gesetzt, war aber schon nach kurzer Zeit etwas enttäuscht und hab nicht mehr aktiv damit gearbeitet. Es springt oft wild hin und her und das andere Buch ist meiner Meinung nach eher eine Befehlsreferenz, aber kein Buch zum Lernen find ich.


    Insgesamt gesehen bin ich ein ziemlicher Neuling in Bezug auf den C64, da ich vorher nie einen hatte, sondern meine Laufbahn in den 80ern auf einem C16 gestartet habe. Durch das Basic 3.5 bin ich recht schnell in die Programmierung reingekommen, hab aber nie was mit Assembler gemacht.

  • markusk2020 ich lese mir gerade deinen Text durch. Warum erwähnst du nicht schon von Anfang an die Mnemonics der Maschinenbefehle, die zur Anwendung kommen? Zumindest in Klammern, aber das wär jetzt wohl zu viel Umstrukturierung? Außerdem auf Seite 13 der "Befehl zum Erniedrigen" des y-Registers sollte doch eher der Befehl zum Dekrementieren oder zum Vermindern sein.


    Klingt allerdings witzig.

  • Was mich wundert, und das fällt mir gerade jetzt auf, weil ich heute im PDF einen Ansatz zu dieser Frage gelesen habe, und weil im Englischen sowieso alle Bücher folgenden Unterschied machen: warum hat man im Deutschen nicht schon immer Assembly statt Assembler zur Mnemonic-Sprache gesagt. Nett wär auch einfach "Mnemonic" gewesen, das hätte dann sowas Geheimnisvolles an sich gehabt. Dass "Assembler" eine Nominalisierung des Verbs assemble ist, und eben für den "Assemblierer" steht, und damit nicht die Sprache an sich, ist uns Deutschsprachigen wohl nicht aufgefallen.

  • warum hat man im Deutschen nicht schon immer Assembly statt Assembler zur Mnemonic-Sprache gesagt

    Interessant, mir war bis gerade gar nicht bewusst, dass Mnemonic tatsächlich Assembly-spezifisch ist. Ich dachte bislang, der Begriff würde auch in anderen Sprachen verwendet...

  • warum hat man im Deutschen nicht schon immer Assembly statt Assembler zur Mnemonic-Sprache gesagt

    Interessant, mir war bis gerade gar nicht bewusst, dass Mnemonic tatsächlich Assembly-spezifisch ist. Ich dachte bislang, der Begriff würde auch in anderen Sprachen verwendet...

    Nein natürlich ist er nicht assemblyspezifisch. Aber das wär ja kein Hindernis gewesen. Mnemonik steht einfach für sowas wie Gedächtniskunst. Oder für einen Merkhilfe. Der einzelne Assemblybefehl ist eine einfache Merkhilfe für Opcodes.

  • Interessant, mir war bis gerade gar nicht bewusst, dass Mnemonic tatsächlich Assembly-spezifisch ist. Ich dachte bislang, der Begriff würde auch in anderen Sprachen verwendet...

    Nein natürlich ist er nicht assemblyspezifisch. Aber das wär ja kein Hindernis gewesen. Mnemonik steht einfach für sowas wie Gedächtniskunst. Oder für einen Merkhilfe. Der einzelne Assemblybefehl ist eine einfache Merkhilfe für Opcodes.

    Das war durchaus ernst gemeint, Wikipedia sagt:

    Quote from Wikipedia

    Mnemonic

  • Es gibt da ja wirklich einige gute Bücher, die sich zum Einstieg gut eignen. Warum da alle nach einiger Zeit aussteigen, weiß ich nicht.

    Assembler lernen erfordert Geduld und Frusttoleranz. Bis etwas Interessantes auf dem Bilschirm zu sehen ist, braucht seine Zeit. Dazu kommt, dass fast jeder Fehler zu einem Absturz führt.


    Um als Autor die Leser bei Laune zu halten ist schwierig. Wobei nur Lesen nicht ausreicht. Mit Assembler muss man am direkt Rechner rumexperimentieren.

  • markusk2020 ich lese mir gerade deinen Text durch. Warum erwähnst du nicht schon von Anfang an die Mnemonics der Maschinenbefehle, die zur Anwendung kommen? Zumindest in Klammern, aber das wär jetzt wohl zu viel Umstrukturierung? Außerdem auf Seite 13 der "Befehl zum Erniedrigen" des y-Registers sollte doch eher der Befehl zum Dekrementieren oder zum Vermindern sein.


    Klingt allerdings witzig.

    Ich hab die Mnemonics deshalb nicht von Beginn an ins Spiel gebracht, weil ich gezielt den Unterschied zwischen Maschinensprache und Assembler herausarbeiten wollte. Für viele ist das 1:1 das gleiche, was eben nicht stimmt.


    Und laut dem bisherigen Feedback zu urteilen, wurde gerade dieser Ansatz als sehr positiv empfunden, weil dadurch der Unterschied klar ersichtlich wurde und auch die Vorteile von Assembler gegenüber der Maschinensprache erst so richtig deutlich wurden.


    Die Sache mit dem Dekrementieren passe ich gerne an, da geb ich Dir recht.


    Lg, Markus

  • Und laut dem bisherigen Feedback zu urteilen, wurde gerade dieser Ansatz als sehr positiv empfunden, weil dadurch der Unterschied klar ersichtlich wurde und auch die Vorteile von Assembler gegenüber der Maschinensprache erst so richtig deutlich wurden.

    Ja, das stimmt. Erstmal die Grundlage erklären, dann wie man es einfacher besnutzen kann. In der Videoreihe "Mikrocomputer Mikrocontroller" zum Buch "Keine Angst vor dem Mikrocomputer" fand ich das ebenfalls sehr gut. Da wurde das ja schön anschaulich mit einer Prozessoranschaltung und LEDs gezeigt. Das fand ich sehr gut, um zu verstehen, wie ein Prozessor wirklich arbeitet.

  • Interessant, mir war bis gerade gar nicht bewusst, dass Mnemonic tatsächlich Assembly-spezifisch ist. Ich dachte bislang, der Begriff würde auch in anderen Sprachen verwendet...

    Nein natürlich ist er nicht assemblyspezifisch. Aber das wär ja kein Hindernis gewesen. Mnemonik steht einfach für sowas wie Gedächtniskunst. Oder für einen Merkhilfe. Der einzelne Assemblybefehl ist eine einfache Merkhilfe für Opcodes.

    Das war durchaus ernst gemeint, Wikipedia sagt:

    Quote from Wikipedia

    Mnemonic

    Das kenn ich, persönlich halte ich das für zumindest fragwürdig, der andere Wikieintrag ist deutlich breiter angelegt, was ich auch für richtig halte.

    Für mich persönlich habe ich Mnemonic auch nur in Assembler gesehen, weiss aber dass das Wort in Bildungskreisen auch für US Bundesstaaten genutzt wird. (CA, NV,...)


    A mnemonic device (/nɪˈmɒnɪk/ nih-MON-ik)[1] or memory device is any learning technique that aids information retention or retrieval in the human memory, often by associating the information with something that is easier to remember.

  • markusk2020 in deinem Sprite PDF machst du das bitweise Ausschalten bspw. des Nuller-Bits mit Poke 53276, Peek(53276) And (Not(1))


    Das ist natürlich vollkommen richtig. Aber ich finde, dass für das Bitmaskenverständnis eine Verknüpfung mit AND 254 viel einsichtiger ist.


    Außerdem spart das in Assembler den Befehl fürs Einerkomplement. Der Befehl fürs exklusive Oder ist zwar auch lernenswert, bringt hier aber nicht notwendige Komplikation.

  • Hallo!


    Eigentlich wollte ich ja auf einen anderen Assembler direkt am C64 umsteigen (z.B. auf den Turbo Assembler), habe mich nun aber doch dazu entschlossen, auf das C64 Studio zu wechseln und werde das Kapitel über Sprites in Bezug auf diese Entwicklungsumgebung überarbeiten.


    Klar geht dadurch ein bestimmtes Maß an Retro-Feeling verloren, aber der Kurs richtet sich an Assembler-Anfänger und da der Schwierigkeitsgrad der Themen ja nun doch stetig zunimmt, ist es glaube ich eine gute Idee, es den Lesern von der Entwicklungsumgebung her so einfach wie möglich zu machen. Die Lesbarkeit des Codes wird durch die Labels usw. ja auch sehr verbessert, was natürlich auch dazu beiträgt, dass der Spaß am Lernen nicht verloren geht.


    Ich kenne das von mir selbst, wenn man sich in ein komplexes Thema einarbeiten will, dann möchte man sich auf das eigentliche Hauptproblem (in diesem Fall eben Assembler zu lernen) konzentrieren und sich nicht dauernd mit nervigen Hürden der Umgebung, in der man arbeitet, rumschlagen. Und ich denke, mit SMON haben wir bisher genug Retro-Feeling erlebt.


    Und es wäre ja schade, wenn jene, die bisher enthusiastisch dabei waren, nun aufhören, nur weil die Arbeit in der Entwicklungsumgebung zu nervig geworden ist.


    Bis es mit dem Kurs weitergeht, kann es also ein wenig dauern, weil ich erstens für mich selber mal vom SMON auf das C64 Studio umschwenken muss und es zweitens ja auch noch ein Leben neben dem C64 gibt :)


    lg, Markus