BT2k
LOGO

Mikrocontroller III
Der Disassemlber

Zurückübersetzen in Assembler
Die wesentliche Funktion des Excel-Blattes besteht darin, den Speicherinhalt ab Adresse 8100h des externen Sios-RAM auszulesen und zu disassemblieren. Dabei wird in einer Tabelle jedem Byte wieder ein sog. mnemoischer Ausdruck zugeordnet. Aus 74h wird wieder MOV A. Mit Hilfe dieser Funktion lassen sich also die RAM-Programme leicht überprüfen.
 0256
   100 74 55 F5 E8 02 81 04 40
   110 22 00 40 00 00 00 00 00
   120 9C 00 00 00 00 00 00 90
   130 2E 00 00 00 00 00 00 01
   140 F0 00 00 00 00 00 00 01
   150 4A 00 00 00 00 00 00 40
   160 CE 00 00 00 00 00 00 24
Der Hex-Dump
Nachdem das Programm übertragen wurde, kann der VBA-Editor geschlossen werden. Auf dem Tabellenblatt "SiosTasm" wird nun durch Betätigung des Buttons "Programmspeicher auslesen" der Speicherinhalt ab Adresse 8100h (8000h+256d) im linken Bereich als Hex-Dump dargestellt. Bei fehlerloser Übertragung sollten die ersten sieben Bytes richtig angezeigt werden.

Der Disassembler
Auf der rechten Seite des Blattes steht nun das ursprüngliche Programm, mit Mnemonics. Die nachfolgenden Bytes können irgendwelche Werte belegen. Sie wurden ja nicht beschrieben.
 8100 74 55    MOV  A,#55
 8102 F5 E8    MOV  E8,A
 8104 02 81 04 LJMP 8104
 8107 40 28    JC   28
 8109 00       NOP 

Ausgabe 85d Programm starten
Mit Betätigung des Buttons "Programm starten" wird das Maschinenprogramm ab Adresse 8100h ausgeführt. Der Akkumulator wird mit der Zahl 85 (55h) geladen, anschließend an die interne RAM-Adresse E8h geschrieben. Dort liegt der Digitalausgang vom Sios. Die Leuchtdioden Zeigen die Binärzahl 01010101=55h=85d.

Der nachfolgende Sprung sorgt dafür, dass das Programm in einer Endlosschleife weiter läuft. 


Programm stoppen
Bei einem "normalen" Entwicklungssystem wäre ein Programmstopp nur durch ein Reset (Aus- und Einschalten) möglich. Hier bietet das Sios entscheidende Vorteile. Wenn man mehrfach Null-Bytes über die serielle Schnittstelle an das Sios sendet, wird das Programm trotz Endlosschleife unterbrochen. 
Drückt man z.B. den Button "Programmspeicher auslesen", so reagiert das Sios ganz normal und liefert den Speicherinhalt. Das Programm wurde jedoch angehalten. Das Betriebssystem des Interfaces ist so ausgelegt. Ein Nachteil ist das etwas merkwürdige Adressverhalten. Aber dazu an späterer Stelle mehr. 


Mikrocontroller IV
.
Startseite Bücher Software SatTV Musik Kontakt

Für Inhalt und weitere Verzweigung externer Links sind die Betreiber der dortigen Seiten verantwortlich - H.-J. Berndt