Magic Disk 64

home to index to text: MD9312-KURSE-ASSEMBLER_KURS_2_(TEIL_2).txt
      Maschinensprache-Kurs Teil 2      
     ------------------------------     

Diesmal werden gleich 15 neue, aber dafür doch recht einfache Befehle vorgestellt.
Vorher müssen wir uns jedoch etwas näher mit den Indexregistern ( X-Register und Y-Register) beschäftigen: Jedes dieser beiden Register kann ein Byte aufnehmen, d. h. Werte zwischen $00 und $ FF. Sie werden hauptsächlich im Zusammenhang mit den verschiedenen Adressierungsarten verwendet.

LDX                                     

Beispiel: LDX #$0 a oder LDX $1000 LDX entspricht in seiner Form dem schon bekannten LDA-Befehl.
LDY --- ist der entsprechende Befehl für das Y-Register.
STX/ STY ------- erinnern sehr stark an den STA-Befehl. Und so ist es auch. Bei STX bzw.
STY wird der Inhalt des Xbzw. Y-Regi- sters in die angegebene speicherstelle geschrieben.
Sie bemerken sicherlich die enge Beziehung zwischen dem Akku und den Indexregistern. Für einen schnelleren Datenaustausch zwischen diesen Registern sind die Befehle TAX, TXA, TAY und TYA verantwortlich.
TAX/ TAY ------- Der Inhalt des Akkus wird im X-Register abgelegt. Dadurch verändert sich jedoch der Inhalt des Akkumulators nicht. Für das Y-Register lautet der Befehl TAY.
TXA/ TYA ------- ist die Umkehrung des TAX bzw.
TAY. Nun wird der Inhalt des Xbzw.
Y-Registers in den Akku geschrieben, ohne daß sich das Xbzw. Y-Register verändert.
DEX, DEY und DEC ---------------- Während DEX und DEY das jeweilige Indexregister um 1 erniedrigen, wirkt der DEC-Befehl auf die nach ihm folgende Speicherstelle. Auch von deren Inhalt wird der Wert 1 abgezogen.
Der Akku ist dvon nicht betroffen.
INX, INY und INC ---------------- Diese Assemblerbefehle bewirken genau das Gegenteil der eben vorgestellten. Hier werden die jeweiligen Register um den Wert 1 erhöht.
Was passiert aber, wenn z. B. im X-Register der Wert $ FF steht und der Prozessor auf den Befehl INX trifft ?
Da ein Byte keinen größeren Wert als $ FF annehmen kann, wird das X-Register kurzerhand auf $00 gesetzt. Ähnlich sieht es bei $00 und einem DEX aus. Dann wird einfach wieder " oben" angefangen und $ FF gesetzt.
RTS --- steht gewöhnlich am Ende eines Assemblerprogrammes oder Unterprogrammes und soll künftig unser BRK ersetzen.
Wenn ein Programm auf den RTS-Befehl trifft, wird es nicht mehr unterbrochen, sondern es wird ins Basic gesprungen.
Laden Sie nun den zum Kurs gehörende Programm aus dem GAMESMENUE oder direkt von der ersten Seite dieser MAGIC DISK 64- Ausgabe. Es werden Ihnen die hier vorgestellten Befehle noch einmal verdeutlicht.
Auf der nächsten Seite folgt eine Zusammenstellung der neuen Befehle.
Ich wünsche Ihnen viel Erfolg beim Ausprobieren der neu erlernten Befehle.

In der nächsten Ausgabe der  MAGIC  DISK
64 behandeln wir  Vergleichsbefehle  und
die bedingte Verzweigung.               
LDX (LoaD X-register)                   
LDY (LoaD Y-register)                   
STX (STore X-register)                  
STY (STore Y-register)                  
DEC (DECrement memory)                  
DEX (DEcrement X-register)              
DEY (DEcrement Y-register)              
INC (INCrement memory)                  
INX (INcrement X-register)              
INY (INcrement Y-register)              
TAX (Transfer Accu into X)              
TAX (Transfer Accu into Y)              
TXA (Transfer X into Accu)              
TYA (Transfer Y into Accu)              
RTS (ReTurn from Subroutine)            
----------------------------------------
                                    (wk)

Valid HTML 4.0 Transitional Valid CSS!