home *** CD-ROM | disk | FTP | other *** search
/ Action! Club Magazin 3B / Action_Club_Magazin_3_1987_Action_User_Group_Side_B.atr / address.txt < prev    next >
Text File  |  2023-02-26  |  4KB  |  1 lines

  1. ---------------------------------------¢¢   Assembler Kurs Folge II, Teil II¢¢       (C) 1986 by C.C. Damata¢¢---------------------------------------¢¢¢Das eigentliche Programm:¢¢¢1. Unmittelbare Addressierung:¢   (immediate addressing)¢¢Diese Addressierungsart wird immer be-¢nutzt, wenn konstante Werte verarbeitet¢werden muessen.¢z.B: LDA #0¢Dieser Befehl veranlasst den Computer¢den Wert 0 in den Akkumulator zu laden.¢Gegenbeispiel : LDA 0¢Dieser B. (Befehl) veranlasst den C.¢(Computer) den Wert, der in der Adresse¢0 steht,in den Akkumulator zu laden.¢Das "#" ist also das Erkennungszeichen¢fuer die unmittelbare Adressierung.¢Folgende Befehle sind fuer unmittelbare¢Adressierung zulaessig:¢¢LDA¢LDX¢LDY¢¢ADC            (addiere mit Carry-Flag)¢SBC            (subtrahiere)¢¢CMP            (Vergleiche (Compare)¢CPX¢CPY¢¢sowie die logischen Operatoren AND,ORA,¢EOR¢¢Auf die Rechen-,Vergleichs und Logic-¢befehle werden wir spaeter genauer ein-¢gehen.¢¢¢¢¢     Die absolute Adressierung:¢        (absolute adressing)¢ ---------------------------------¢¢z.B: LDA 710¢¢Hier wird der Wert, der in 710 ge-¢speichert ist in den Akkumulator ueber-¢tragen.¢Die Werte , die mit der absoluten Adr.¢verarbeitet werden muessen immer¢groesser als 255 sein.¢Alle Werte , die kleiner oder gleich¢255 sind werden mit der ¢¢        ZERO PAGE Adressierung¢¢verarbeitet (z.B LDA 82).¢¢Nun werden sich einige fragen, was der¢Unterschied nun soll. Der Unterschied¢liegt einfach darin, dass fuer die¢absolute Adressierung 3 Byte und fuer¢die Zero Page Adr. nur 2 Byte benoetigt¢werden:¢¢Assembler         Maschinencode¢Befehl¢¢LDA 256           $AD $00 $01¢¢LDA 255           $A5 $FF¢¢Wenn wir mit einem Assembler pro-¢grammieren, ist dieses nicht ganz so ¢wichtig, da der Assembler die unter-¢schiedlichen Adressierungsmodi selbst-¢staendig erkennt.!¢¢¢---------------------------------------¢In der naechsten Ausgabe werden wir ¢eine Uebersicht ueber saemtliche¢Befehle und deren Adressierungsmodi¢bringen.¢---------------------------------------¢¢Natuerlich gibt es wesentlich mehr¢Adressierungsmodi. Aber wir glauben,¢dass es wenig Zweck hat, gleich alle¢vorzustellen.¢Wir werden speziellere Adressierungs-¢modi spaeter immer gleich am¢praktischen Beispiel zeigen.¢¢¢Moegliche Befehle fuer absolute Adr.¢und Zero Page Adr.¢¢LDA¢LDX¢LDY¢¢STA¢STX¢STY¢¢ADC¢SBC¢INC¢DEC¢¢alle Vergleichs- und Logicbefehle¢¢JMP     (∈⌡≥ absolute Adr)¢JSR     ( "      "     " )¢¢alle SHIFT Befehle, die spaeter er-¢klaert werden.¢¢Wir sehen, dass sehr viele Befehle ¢fuer die absolute Adr. und Zero Page¢Adr. ausgelegt sind.¢Diese Adressierungsarten und wie auch¢die unmittelbare sind ersteinmal die¢grundlegenden Arten der Adr.¢Es folgen Beispiele...¢¢¢¢Anwendungsbeispiele fuer die absolute ¢und Zero Page Adressierung und die¢Benutzung des DEBUGers:¢¢Aufg.: Die Bildschirmfarbe ist auf¢       weiss (Wert 15) zu setzen.¢       Der linke Rand im Editor soll¢       2 Zeichen nach links geschoben¢       werden, so dass 40 Zeichen pro¢       Zeile erreichbar sind.¢¢ 5  .OPT OBJ   ; IN DEN SPEICHER¢10  *=$5000 ; Startadr.¢20 ;¢30  LDA #15    ; UNMITTELBAR¢40  STA 710    ; ABSOLUT¢50 ;¢60  LDA #0     ; UNMITTELBAR¢70  STA 82     ; ZERO PAGE¢80 ;¢90  BRK        ; = STOP¢¢¢Ist das Prg. eingegeben, so soll es¢mit 'ASM' assemblieren.¢Danach gehe man mit 'BUG' in den De-¢bugger und starte das PRG mit:¢¢               G5000¢¢Nun sollte der Bildschrm weiss und der¢Cursor τβ∈· links sein (wie in Basic¢nach POKE 82,0).¢¢Wenn man jetzt eine andere Farbe¢wuenscht, so muesste man jetzt wieder¢zurueck in den Editor, den ent-¢sprechenden Bef. (LDA #15) auf z.B.¢LDA #16 aendern und das gesamte Prg.¢noch einmal assemblieren.¢Aber eigentlich ist ja nur eine Zahl¢im gesamten Prg. geaendert worden. Hier¢hilft uns dann der Debugger.¢Wir schreibrn also:¢¢C5001<10¢¢Die 10 ist HEXadecimal und hat den ¢DECimalen Wert 16.¢(Beachte: Im DEBUGGER muessen alle Ein-¢gaben in HEX gemacht werden.)¢¢Wieso muss eigentlich Adr $5001 ge-¢aendert werden ???:¢¢Im Quelltext ist angegeben, dass $5000¢Startadr ist.¢LDA #16 als unmittelbarer Bef. belegt¢zwei Bytes.¢Also steht in $5000 der Bef. LDA ($A9).¢In $5001 steht dann der Wert 16. So ¢muss also $5001 geaendert werden.¢Anderfalls muesste die Aenderung im¢DEBUGGER so lauten:¢¢C5000<A9,10¢¢Wir hoffen, dass durch dieses Beispiel¢deutlich geworden ist, wie man mit¢EDITor und DEBUGer sinnvoll arbeiten¢kann.¢¢¢