In den Programmen 'Speicher 1' bis 'Speicher 5' sowie im Variablen-Referenzlistenprogramm haben wir uns bereits ein klein wenig mit den 'Innereien' unseres CPC beschäftigt. Unter 'Innereien' sei hier verstanden: Wie geht es überhaupt vor sich, daß ein unmenschliches Wesen wie der Computer zu denken fähig ist (merken Sie sich dazu folgendes: Ein Computer ist immer nur so schlau, wie die Menschen, die ihn programmiert haben). In den Programmen 'Speicher 1' bis 'Speicher 5' sind wir aber noch nicht tief genug in unseren CPC eingedrungen. Wir haben uns seinerzeit nämlich nur angeschaut, wie unsere BASIC-Programme Zeilennummer für Zeilennummer, Befehl für Befehl, im Speicher abgelegt werden, aber nichts über die Verarbeitung zu den Befehlen und zu dieser Art der Abspeicherung hin kennengelernt. Dabei wurde auch erwähnt, daß der CPC wie jeder andere Computer auch auf die Grundststellung zurückgelangt: an oder aus bzw. in binärer Form: 0 oder 1. Aus dem Erkennen einer Vielzahl von aufeinanderfolgenden 0 en oder 1 en erkennt der Computer dann ein Zeichen, manchmal auch einen Befehl. Unser BASIC nennt sich eine höhere Programmiersprache: sie ist schon mit einer Vielzahl verständlicher Begriffe aufgebaut, so daß wir bei der Benutzung dieser Befehle vielmehr eine Vorstellung davon bekommen, was der Computer tun kann, als wenn wir nur stur 0 en oder 1 en in den Speicher eingeben würden. Der in diesem Programm untersuchte Assemblercode ist eine Stufe zwischen BASIC und Maschinensprache. Wir haben hier eine Vielzahl von Befehlen zur Verfügung (beim Prozessor Z80A im CPC sind es gar mehr als 600 ), die allerdings bei weitem nicht so wirkungsvoll arbeiten wie die BASIC-Befehle. Im Speicher benötigen diese Befehle teils 1 Byte, teils 2 Bytes, manchmal auch gar 3 Bytes (1 Byte - 1 Speicherplatz). Das Programm 'Disassembler' hat sämtliche Z80A-Assemblercodes (man nennt sie auch Mnemoniks) gespeichert und untersucht den von uns vorgegebenen Speicherraum nach deren Vorkommen. Dabei untersucht es das Vorkommen bestimmter Zeichenfolgen (ähnlich wie bei dem 'Speicher'-Programm, wo wir nach der Zeichenfolge 'Laenge' gesucht haben); werden diese Zahlenfolgen irgendwo angetroffen, wird der entsprechende Assemblercode auf den Bildschirm (oder Drucker) geschrieben. Da wir nicht davon ausgehen können, daß Sie Tag für Tag sehr viele Maschinenprogramme schreiben, haben wir einen Lerneffekt in unser 'Disassembler'-Proramm eingebaut: In Zeile 3530 steht eine DATA-Anweisung, gefolgt von meheren Hexadezimalzahlen. Diese Zahlen sind ein kleines Maschinenprogramm, in dem zwei Zahlen zusammengezählt und an einer bestimmten Speicherstelle abgelegt werden. Sie können sich die Umwandlung dieser Zahlen in ein Assemblerprogramm anschauen, indem Sie nach dem Programmstart auf alle Fragen ohne weitere Eingabe nur mit (ENTER) antworten. Sie können nun auch andere Zahlen (in hexadezimaler Form, bitte!) in die DATA-Zeile schreiben - oder Sie finden ein längeres Maschinenprogramm für Z80A-Prozessor in einer Computerzeitschrift ... Sie können auch ruhig mehrere DATA-Zeilen mit Zahlen anfüllen ... Viel Spaß dabei! |