Grundlagen

Für diesen Beitrag wurde das CBM prg Studio verwendet.
weitersagen ...
Tweet about this on TwitterShare on FacebookShare on Google+Share on LinkedIn

CBM prg StudioAssembler ist nicht Maschinensprache

Beginnen wir mit der Unterscheidung zwischen Maschinensprache und Assembler. Die einzige Sprache, die die Maschine (der Rechner) versteht ist eigentlich nur, Strom an (wird durch eine 1 symbolisiert) oder aus (was einer 0 entspricht). Somit ist die reine Maschinensprache nichts anderes als eine Abfolge von Nullen und Einsen. Diese Nullen und Einsen, werden zu logischen Gruppen zusammengefasst, beim C64 als 8-BIT-Rechner zu BYTES. Assembler ist zunächst einmal eine Programmiersprache, die uns leicht zu merkende Kürzel (Mnemonics genannt) statt Bytecodes für die Programmentwicklung bietet. Außerdem versteht man unter Assembler (to assemble = zusammenbauen) auch das Programm, dass diese Kürzel wieder in die für den Rechner verständliche Bytecodes umwandelt. Unser fertig assembliertes Programm ist dann ein direkt ausführbares Maschinenspracheprogramm. Jetzt mögt ihr euch fragen, wo der Unterschied zu BASIC, C oder Pascal ist? Auch diese müssen doch letztendlich wieder in Maschinensprache ‚übersetzt‚ werden, sonst könnte der Computer mit ihnen nichts anfangen. Die drei sind sogenannte Hochsprachen, d. h. sie bieten fertige Routinen (z. B. PRINT) um die gewünschte Aufgabe zu erfüllen. Das macht die Programmierung etwas leichter, die Routinen aber auch langsam, da sie viele Möglichkeiten abdecken müssen, auch wenn wir diese evtl. überhaupt nicht benötigen. Unter Assembler können wir, nein wir müssen sogar (sofern wir nicht auf Betriebssystemfunktionen zurückgreifen), alles von grundauf neu entwickeln. Das macht zwar mehr Arbeit, aber es erlaubt uns das Maximum aus dem Rechner herauszuholen, da wir jedes Byte selbst festlegen.

Schauen wir uns ein letztes Mal (das stimmt nicht ganz, wie wir später noch sehen werden) ein BASIC Programm an und vergleichen dieses dann mit der entsprechenden Assembler-Version.

Wenn ihr das Programm startet, seht ihr wie 255 Pik-Symbole auf dem Bildschirm ausgegeben werden. Man kann direkt zusehen, wie jedes einzelne Zeichen auf dem Bildschirm landet, das Ganze dauert ca. 1,5 Sekunden. Dass das so langsam ist liegt auch daran, dass BASIC eine Interpretersprache (im Gegensatz zu C oder Pascal, dies sind CompilerspracheninfoCompilersprachenHier wird der Quellcode (ähnlich wie beim Assembler) vom sog. Compiler (engl. to compile = erstellen) wieder in die Bytecodes verwandelt. Dies geschieht nur einmal und man erhält ein ausführbares Maschienenprogramm.) ist. Beim Interpreter wird jede Befehlszeile in dem Moment untersucht und in ‚Maschinensprache‚ verwandelt in dem sie an der Reihe ist.

Nun setzen wir dieses Programm in Assembler um. Dass ihr das Programm noch nicht versteht, ist nicht so schlimm, es geht hier nur um den Vergleich mit BASIC.

Startet jetzt das CBM prg Studio, es sollte alles wie im Video erklärt eingerichtet sein und gebt folgende Zeilen ein:

Nachdem ihr das Programm eingegeben oder einfach kopiert habt, drückt F5 um es zu starten. Wenn alles korrekt war sollte der Emulator sich öffnen und 255 Pik-Symbole erscheinen.

Das Assemblerprogramm läuft so schnell, dass ihr überhaupt nicht mitbekommt wie die einzelnen Pik-Symbole auf dem Bildschirm landen, sie sind einfach da.

Hier habt ihr nun einen der Vorzüge von Assembler selbst erfahren, es ist bis zu 1000 mal schneller als BASIC. Unser eigentliches Programm (alles hinter der  BYTE $0B... Zeile) benötigt nur ca. 0,0026 Sek. und belegt lediglich 11 Bytes im Speicher. Das ist der nächste große Vorteil von Assembler, es erlaubt das Erstellen von sehr kompakten, speicherplatzsparenden Programmen.

Schauen wir uns erstmal grob den internen Aufbau des C64 an und beschäftigen uns dann, in einem Assembler-Tutorial, mit den einzelnen Assembler-Befehlen (Mnemonics). Diese Befehle sind nicht nur für die 6510 CPU (Central Processing Unit = Prozessor) im C64 gültig, sondern auch für andere 8-Bitter mit dem 6502 (z. B. Apple II, Atari 800 XL), sogar fürs VCS 2600 kann man diese Befehle gebrauchen, obwohl dort ein 6507 verbaut wurde. Der 6510 ist eine Abwandlung vom 6502 einer damals sehr verbreiteten CPU, auf die wirklich minimalen Unterschiede kommen wir an geeigneter Stelle zu sprechen.

Dann schauen wir mal, was unter der Haube des C64 so passiert…


Schrott!!Naja...Geht so...Ganz gut...SUPER! (12 Bewertungen | Ø 5,00 von 5 | 100,00%)

Loading...


<<<zurück | weiter>>>

weitersagen ...
Tweet about this on TwitterShare on FacebookShare on Google+Share on LinkedIn

8 Gedanken zu „Grundlagen“

  1. Hallo,
    ich benutze Linux mit Eclipse, ACME und Vice. Wichtig war für mich, das vor dem BYTE Befehl ein Ausrufezeichen kommt. Also so „!BYTE“.
    Sonst funktioniert das nicht und man wundert sich Stundenlang.
    Ansonsten super!

      1. Ich hätte gerne die Syntax vom CBMPrgStudio. Muß ich dazu einen anderen Compiler verwenden? Wenn ja, welchen denn? KickAss oder Tass?

        Ich war schon froh, das so hinbekommen zu haben. 😉

        1. Dazu brauchst du das CBM prg Studio und das gibt es nur für Windows.
          Es verwendet eine eigene Syntax, die mit keinem anderen Assembler kompatibel ist (auch wenn es teilweise Überschneidungen gibt).

          Ich würde dir raten, bei ACME zu bleiben und „Vom CBM prg Studio zum C64 Studio“ zu Rate zu ziehen.
          Die Mnemonics sind ja nicht das Problem, die Assembler unterscheiden sich bei den Directiven (BYTE, WORD, TEXT, FOR, usw.).
          Bis auf kleine Unterschiede, kannst du das Tutorial also auch damit durchziehen.

          Ich habe mich vor fast drei Jahren entschieden, in Zukunft das C64 Studio zu nutzen (wie erwähnt verwendet es die ACME Syntax), daher sind neuere Beiträge mit ACME kompatibel.

  2. Hallo,
    ich habe mir nun CBM prg Studio in der Version 3.2.1 heruntergeladen und installiert ( Win 7, 64Bit ).
    Das Problem ist, das im Programmierfenster die obersten Zeilen (Zeile 1 und 2) nicht angezeigt werden. Die beiden Zeilen verschwinden sozusagen unter der oberen Menüleiste!

    Kennt jemand dieses Problem? Was kann man dagegen tun?

    1. Moin,
      ich habe das CBM prg Studio auch auf mehreren Rechnern laufen (Win 7 & 8 jeweils 64Bit), so ein Problem ist mir bisher nicht begegnet.

      Hast du evtl. eine eher ungewöhnliche Auflösung oder etwas wie die Windows-Skalierung aktiv?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Protected by WP Anti Spam