Das Commodore 64 Buch Band 4: Ein Leitfaden für Systemprogrammierer

Aus C64-Wiki
Zur Navigation springenZur Suche springen


Das Commodore 64 Buch Band 4: Ein Leitfaden für Systemprogrammierer
Cover/Buchdeckel
Sprache deutsch
Autor(en) Hans Lorenz Schneider, Werner Eberl
Verlag Markt&Technik Verlag AG
Jahr 1984
ISBN ISBN 3-922120-70-9
Neupreis DM 38.-
Datenträger
Seitenzahl 261
letzte Auflage 1. unveränderte Auflage
Genre Programmieren
Information Band 4 der Buchreihe:
Das Commodore 64 Buch




Beschreibung[Bearbeiten | Quelltext bearbeiten]

Quelle: Text auf der Buch-Rückseite

Das vorliegende Buch wendet sich an diejenigen Leser, welche die Möglichkeiten ihres Commodore 64 mit dem Hilfsmittel der Maschinensprache weiter ausschöpfen wollen.

Das Buch beinhaltet eine Einführung in die Maschinenprogrammierung und eine Anleitung, wie die Maschinenprogramme in Basic-Programme eingebaut werden können. Insbesondere sind ein Assembler in zwei Versionen und ein Disassembler beschrieben. Zum Verständnis dieser Programme ist die Kenntnis von Basic erforderlich.

In zahlreichen Tabellen und Beispielen wird die Wirkungsweise des Prozessors und der Assembler-Programmierung deutlich. Die vorgestellten Programme sind einerseits ein Hilfsmittel für den Programmierer, andererseits werden auch Möglichkeiten aufgezeigt, Programmstücke für eigene Programme zu nutzen.

Leseprobe[Bearbeiten | Quelltext bearbeiten]

CMP

Compare to Accumulator	                Vergleiche mit Akku

Bei diesem Befehl wird zunächst der Vergleichswert vom Akkumulator abgezogen, das Ergebnis jedoch nicht festge- halten. Der Akkumulator wird also nicht verändert. Jedoch werden die Flags so gesetzt, als ob eine Subtraktion stattgefunden hätte. Das Zero-Flag ist also dann gesetzt, wenn der Akkumulator identisch mit dem Vergleichswert war. Das Carry-Flag wird gesetzt, wenn der Vergleichswert klei- ner oder gleich dem Akkumulator war. Das Overflow-Flag wird jedoch nicht verändert. Die Behandlung des Negative- Flags ist meist sinnlos, da das virtuelle Ergebnis der Subtraktion an sich meist keinen Informationswert besitzt.
Tabellarisch kann man die Verzweigungsmöglichkeiten wie folgt angeben:
A kleiner als M: BCC A kleiner oder gleich M: BEQ / BCC A gleich M: BEQ A größer oder gleich M: BCS A größer als M: BEQ $+2, BCS

N V B - D I Z C Beeinflusste Flags: * * * Beeinflussende Flags:

|===============================================| | Adressierungsart | Symbol-Form | Code | Bytes | |-----------------------------------------------| | Unmittelbar | CMP #OP | C9 | 2 | | Zero Page | CMP Op | C5 | 2 | | Zero Page , X | CMP Op,X | D5 | 2 | | Absolut | CMP Op | CD | 3 | | Absolut , X | CMP Op,X | DD | 3 | | Absolut , Y | CMP Op,Y | D9 | 3 | | Vor- indiziert | CMP (Op,X) | C1 | 2 | | Nach-indiziert | CMP (Op),Y | D1 | 2 | |===============================================|

Inhaltsverzeichnis[Bearbeiten | Quelltext bearbeiten]

Vorwort                                                  5
Einleitung 7
Inhaltsverzeichnis 9
1. 6510 - der Prozessor des Commodore 64 15 1.1 Funktion eines Mikroprozessors 15 1.2 Die Register des 6510 19 1.3 Die Flags des 6510 21 1.4 Adressierungsarten 25 1.5 Die Befehle in alphabetischer Reihenfolge 27 1.6 Einfache Beispiele für Maschinenprogramme 60 1.7 Die Befehle in numerischer Reihenfolge 63 1.8 Basic-Programm zur Erläuterung 66 1.9 Zusätzliche und illegale Befehle 92
2. Zusammenarbeit von Maschinenprogrammen mit Basic 97 2.1 Speicheraufteilung im Commodore 64 97 2.2 Zahldarstellung 100 2.3 Variablen im Commodore-Basic 103 2.4 ROM-Routinen des Commodore 64 105 2.5 Laden der Maschinenprogramme 121 2.6 Anbinden mit dem SYS-Befehl 122 2.7 USR-Funktion 123 2.8 Die Zero-Page des Commodore 64 124
3. Basic-Programm des Assemblers 131 3.1 DATA-Anweisungen 132 3.1.1 Adressierungsarten 132 3.1.2 Mnemotechnische Befehle 133 3.1.3 Direktiven 134 3.1.4 Basic-Keywords 135 3.1.5 Fehlermeldungen 135 3.2 Unterprogramme 136 3.2.1 Häufiger verwendete Unterprogramme 136 3.2.2 Zeile assemblieren 143 3.2.3 Variable mit hexadezimalem Code besetzen 150 3.2.4 Direktiven auswerten 150 3.2.5 Modus und Wert des Operanden feststellen 157 3.2.6 Doppelterm auswerten 161 3.2.7 Einzelausdruck auswerten 163 3.2.8 Weitere Unterprogramme 168 3.3 Hauptprogramm mit Vorspann 172 3.4 Mögliche Erweiterungen 181
4. Maschinenprogramme zum Assembler 185 4.1 Konstantenvereinbarungen / ROM-Routinen 185 4.2 Sprungtabelle und Hilfszellen 188 4.3 Leerzeichen eliminieren 190 4.4 Ein Zeichen einlesen 192 4.5 Eine Programmzeile lesen 193 4.6 Eine Textzeile lesen 196 4.7 Wert von Hexadezimalzahl bestimmen 197 4.8 Hexadezimal-Zahl bilden 199 4.9 INDEX-Funktion 201 4.10 Sonderzeichen suchen 203 4.11 Fehler registrieren 204 4.12 Verwaltung der Symboltabelle 205 4.13 Mnemotechnische Bezeichnung suchen 214 4.14 Initialisierungs-Routine 217
5. Disassembler 221 5.1 DATA-Zeilen 221 5.2 Unterprogramme 223 5.3 Hauptprogramm 226 5.4 Ergänzungen 233
6. Bedienungsanleitungen 237 6.1 Assembler 237 6.2 Disassembler 241
Anhang Anhang 1 : Tabelle der Parametertypen 245 Anhang 2 : Steuerzeichen in den Listings 246 Anhang 3 : Umwandlungstabelle Hexadezimal-Dezimal 247 Anhang 4 : Komplettlisting des 'gemischten' Assemblers 248

Meinung[Bearbeiten | Quelltext bearbeiten]

Werner: "Ein solides Nachschlagewerk für fortgeschrittene Programmierer."

Weblinks[Bearbeiten | Quelltext bearbeiten]

Katalog der Deutschen Nationalbibliothek: 3-922120-70-9