Magic Disk 64

home to index to html: MD9311-KURSE-ASSEMBLER_KURS_2_(TEIL_1).html
         Assembler-Kurs Teil 1          
        -----------------------         
EINLEITUNG:                             
Dieser Assembler-Kurs soll allen  BASIC-
Programmierern den Einstieg in Assembler
ermöglichen.                            
Ich werde mich in der  Folge  darum  be-
mühen, die komplizierten Fachbegriffe zu
umgehen und leicht verständliche Erklär-
ungen zu geben.                         
Zunächst sollen innerhalb dieses  Kurses
alle Assembler-Befehle behandelt werden.
In späteren Teilen  wird  dann  auf  die
Verwendung von Kernal-Routinen  und  die
Interrupt-Technik eingegangen.          
Zu jedem Teil des Kurses  befindet  sich
ein Programm auf der zweiten  Seite  der
Diskette   ("ASSEMBLER-KURS   1"),   das
einige  Assembler-Routinen  enthält  und
Ihnen deshalb  gleich  die  Auswirkungen
der jeweiligen Assembler-Befehle  demon-
strieren kann.                          
DAS WERKZEUG:                           
Zum Programmieren in Assembler benötigen
Sie unbedingt ein Programm, das die  Be-
fehle in reine  Maschinensprache  umwan-
delt. Diese Programme  werden  Assembler
oder Monitore genannt. Ein solches  Pro-
gramm finden Sie unter anderem  auf  der
Rückseite dieser Ausgabe (WIZ-MON);  die
Beschreibung  dazu  entnehmen  Sie   der
entsprechenden Rubrik.                  
LDA, STA und BRK:                       
----------------                        
Und  jetzt  können  wir  schon  mit  den
ersten Befehlen loslegen.               
Wir fangen an mit LDA (load accumulator)
Der Akkumulator (oder kurz Akku genannt)
ist eine Art Verteilerstelle. Mit diesem
Befehl lädt man also einen  Wert  (Zahl)
in den Akku.                            
STA (store accumulator) schreibt  diesen
Akkuinhalt  dann   in   die   angegebene
Speicherstelle.                         
Der  Befehl  BRK  entspricht  etwa   dem
BASIC-Befehl STOP  und  sollte  zunächst
immer am Ende Ihrer ersten  Programmier-
veruche mit Assembler stehen.           
LDA und STA sind durchaus mit  PEEK  und
POKE aus dem BASIC vergleichbar.        
Beispiel: POKE 8192,8                   
Dieser Befehl schreibt also den  Wert  8
in die Speicherstelle 8192. Eine Routine
in Assembler, die  die  gleiche  Aufgabe
erfüllt, lautet:                        
          LDA #$08                      
          STA $2000                     
          BRK                           
Lassen Sie sich nicht dadurch verwirren,
daß  hier  Hexadezimalzahlen  (Erklärung
im Programm!) verwendet werden.         
Das Zeichen  "#"  in  der  ersten  Zeile
zeigt an, daß eine  konstante  Zahl  und
nicht der Inhalt einer Speicherzelle  in
den Akku geladen wird. Die  hexadezimale
Zahl  $2000  entspricht  haargenau   der
dezimalen Zahl 8192.                    
Zunächst wird also die Zahl 8 (bzw. $08)
in den  Akku  geladen.  In  der  zweiten
Zeile wird dieser Wert  in  der  Adresse
8192 ($2000) abgelegt.                  
Ein anderes Beispiel:                   
Nach der Eingabe von  POKE  12288,  PEEK
(8192) hätte die Adresse 12288 ebenfalls
den Inhalt 8.                           
Die   entsprechenden   Assembler-Befehle
lauten:  LDA $2000                      
         STA $3000                      
         BRK                            
Mit LDA wird diesmal keine Zahl, sondern
der  Inhalt  der  Speicherstelle   $2000
(ähnlich PEEK(8192) in den Akku geladen.
STA legt den  Akkuinhalt  daraufhin  bei
$3000 (dezimal 12288) ab.               
DER UMGANG MIT DEM MONITOR:             
Eingegeben werden die  Assembler-Befehle
mit einem Monitor durch:                
      A Speicherstelle Assembler-Befehl 
z.B.: A C000 LDA #$08                   
Wenn Sie Ihre eingegebenen Befehlsfolgen
noch einmal betrachten wollen, so können
Sie dies mit "D  Speicherstelle"  (z.B.:
D C000) tun.                            
Es wird Ihnen dann bei unserem Beispiel 
folgende Zeile gezeigt:                 
     . C000  A9 08   LDA #$08           
Die Zahl C000 ist die Speicherstelle, in
der der Befehl steht. A9 ist die Codezhl
für den LDA-Befehl.  Die  darauffolgende
Zahl zeigt den Wert an, der in den  Akku
geladen wird. Uns brauchen zunächst  nur
die  Assembler-Befehle  im  Klartext  zu
interessieren.                          
Laden  Sie  nun   das   Beispielprogramm
"ASSEMBLER-KURS  1"  von   der   zweiten
Seite. Es wird Ihnen weitere  Hilfen  zu
den ersten  Assembler-Befehlen  und  zum
hexadezimalen Zahlensystem geben.       
In der nächsten Ausgabe behanden wir die
Indexregister  und   die   dazugehörigen
Assmblerbefehle.                        
Bis dahin wünschen ich Ihnen  viel  Spaß
beim ausprobieren der gelernten Befehle!
                                    (rt)



Valid HTML 4.0 Transitional Valid CSS!