DV3-Info
Start-Deutsch
Ergebnisse
Assembler und DV3
Downloads!
Mailing-List!
Thanks to...
Links!
Assembler und DV3

Kapitel 3

Mit dem Ausdruck des Assembler-Listings aus Kapitel 2 setzen wir nun die Untersuchung der NPLv111.bin-Datei fort :
An Adresse 820122h beginnt es für uns interessant zu werden. An dieser Adresse steht der Befehl SCALL 82h:1094.
Dies bedeutet, daß die Ausführung des Programms an Adresse 821094h fort- gesetzt wird. Dort beginnt ein Unterprogramm, das den LCD-Controller initialisiert. Das Unterprogramm endet mit dem Befehl SRET und kehrt an die nächste Adresse nach dem SCALL-Befehl im Hauptprogramm zurück.
An Adresse 82013Ah wird das Register 2 durch einen MOV-Befehl mit dem Wert 007Eh geladen. Der nächste Befehl lädt den Wert 0082h (Segment-Wert)
ins Register 3. Dies bedeutet, daß R2 und R2 gemeinsam die Adresse des ersten Ausgabetextes (Text-String) enthalten !
Jeder Text-String endet mit dem Wert 00h (siehe im Textbereich 82007Eh bis 8200E2h) ! Jetzt wird klar, wenn wir uns die Adresse 820158h ansehen, daß dort bereits die Adresse des zweiten Text-Strings steht...
Was passiert dazwischen ?
Die PUSH-Befehle an den Adressen 820142h und 820144h übertragen die Werte von R3 und R2 auf den Stack, einen bestimmten Speicherbereich für Register-Werte.
An Adresse 820146h wird R2 mit dem Wert 001Eh geladen und anschließend auf den Stack übertragen. Dieser Wert bedeutet die Ausgabezeile auf der LCD- Anzeige, an der der Text-String erscheinen soll !
An Adresse 82014Ch wird R2 mit einem anderen Wert geladen, der die vorge- sehene Spalte für den Text-String definiert - pixelgenau !
Schließlich wird an Adresse 82014Eh mit dem Befehl SCALL 82h:1EE0h ein weiteres Unterprogramm aufgerufen, das den Text-String zur LCD-Anzeige sendet !
Die nächsten Text-Zeilen werden nach dem genau gleichen Muster erzeugt.

Experimente :

1. Verändert leicht die Zeilenwerte (1Eh =30dez; 28h =40dez; B0h =50dez) für die Text-Strings mit dem Hexeditor in der Datei NPLv111.bin.
Benennt die Datei in Test2.bin um und ladet sie in den DV3.
Wie sehen die Ergebnisse aus ? Welches ist der maximale Wert, der gewählt werden muß, um die letzte Zeile der LCD-Anzeige zu beschreiben ?

2. Verändert in derselben Weise die Spaltenwerte der Text-Strings.
Achtung: Wie wir im Assembler-Listing sehen können, ist der MOV-Befehl   für die Definition der Spaltenwerte wie folgt aufgebaut:

    C9 23  ->  MOV R2, 03h -> C9 = MOV; 2 = R2; 3 = 03h

Welches Problem haben wird deshalb, wenn wir den Spaltenwert ändern  wollen ?

3. Benutzt den Disassembler, um die Veränderungen, die ihr mit dem Hexeditor durchgeführt habt, zu überprüfen. In der Tat sollte die veränderte BIN-Datei immer zuerst mit dem Disassembler überprüft werden bevor sie in den DV3 ge- laden wird, um nervenaufreibende Fehlfunktionen zu vermeiden !
 

    Ergebnisse :
    ...werden im nächsten Kapitel diskutiert !

[DV3-Info] [Start-Deutsch] [Ergebnisse] [Start-Englisch] [Results]