BT2k
LOGO

Mikrocontroller V
Hilfsprogramm: TasmEdit

tasmedit Tasm-Edit: Ohne Dos-Fenster
TASM ist eine DOS-Anwendung. Um auf den gewohnten Windows-Komfort nicht zu verzichten, wurde ein sehr simples Windows-Programm erstellt.Eine zweigeteiltes Programmfenster stellt links den Quelltext dar und rechts wird nach Betätigung von "Compile" das Listing angezeigt.
TASM-EDIT ist ein Hilfsprogramm, welches folgende Kommandos automatisiert:
- Bei Programmstart Laden des Quelltextes C:\TASM\0.ASM und Darstellung im linken Fenster.
Das Linke Fenster erlaubt Editierung über die rechte Maustaste (Kopieren, Rückgängig, usw.) So können über die Zwischenablage Quelltexte übernommen werden. Bei Betätigung der Compile-Taste wird folgendes erledigt:
- Inhalt des linken Fensters wird als C:\TASM\0.ASM gespeichert.
- Das Programm TASM wird mit den Parametern -51 -b 0.ASM aufgerufen
- Im rechten Fenster wird die Datei C:\TASM\0.LST angezeigt.
Da es nur ein Hilfsprogramm ist, muss es im Verzeichnis C:\TASM ausgeführt werden. 
Damit das DOS-Programm TASM.EXE nach der Ausführung automatisch beendet wird, ist es notwendig im Explorer die Programmeigenschaften von TASM-EXE zu ändern. Das rechte Bild zeigt, wie "Beim Beenden schließen" aktiviert wird. 
Die Download-Datei enthält ein Selbstentpackendes ZIP-Archiv. Darin enthalten sind

 - Das Hilfsprogramm TasmEdit
 - 0.obj, 0.asm, 0.lst des zweiten Programms
 - Tasm.Pif mit den Eigenschaften (rechts)

Als Ziel-Verzeichnis wird C:\TASM vorgeschlagen. Dies sollte nicht verändert werden, da diese Pfade im Hilfsprogramm fest eingebaut wurden.

Download tasmedit.zip (192K)

Eigenschaften TASM


Schnelle Entwicklung
Mit Hilfe des Excel-Blattes "SiosTasm" und dem Hilfsprogramm "TasmEdit" kann nun recht schnell entwickelt werden. Die Programmerstellung erfolgt im Hilfsprogramm. Mit "Compile" wird der Assembler gestartet und eventuelle Fehler im Listing angezeigt. Werden keine Fehler gefunden, betätigt man im Excel-Blatt die Taste "Programm 0.obj Übertragen". Das Sios-RAM kann mit "Programm Auslesen" als Hex-Dump und Disassemblerlisting dargestellt werden. Schließlich wird mit "Programm Starten" das Maschinenprogramm im Sios ausgeführt. 

DOUT .equ 0E8H  ;Dies ist DOUT
.org 8100H      ;Anfangsadresse
     mov a,#85  ;Akku=55h
     mov DOUT,a ;Ausgeben
ende ljmp ende  ;Endlosschleife
.end            ;Ende
Zweites Programm mit Equate
Über die Equate-Anweisung können im Assembler-Quelltext Konstanten definiert werden. So können abstrakte konstante Zahlenwerte über aussagekräftige Ausdrücke angesprochen werden. Der Digitalausgang am Sios wird, wie eher schon genannt, unter der Adresse E8 des Internen RAM erreicht. Im nebenstehenden Listing wird dieser Ausgang kurz mit DOUT (DigitalOut) festgelegt.
Um dieses Programm zu übersetzen wird der Quelltext hier markiert und über die rechte Maustaste kopiert. Im Linken Fenster kann der Text dann über die rechte Maustaste eingefügt werden. Alle Zeichen nach dem Semikolon werden vom Assembler ignoriert. So kann man seinen Quelltext übersichtlich kommentieren. Als Ergebnis bekommt man die gleichen Hex-Bytes:7455F5E8028104.

Mit SJUMP nur noch 6 Bytes
Das Programm kann unter Verwendung eines anderen Sprungbefehls verkürzt werden. ShortJump (SJMP) kann um 127 Byte vor- bzw. zurückspringen. Da keine absolute Adresse verwendet wird, besteht der Befehl nur noch aus zwei Bytes 80h FEh. Dadurch wird das Programm nicht nur kürzer, es funktioniert somit auch in jedem Adressbereich. Der Hex-Dump ergibt 7455F5E880FE.
DOUT .equ 0E8H   ;Dies ist DOUT
.org 8100H       ;Anfangsadresse
     mov a,#85   ;Akku=55h
     mov DOUT,a  ;Ausgeben
ende sjmp ende   ;ShortJump
     .end  ;Ende

Noch ein Byte weniger
Der Befehl 75h (MOV adr,#data) bewegt Daten an eine Adresse im internen RAM. Damit kann auf den Umweg des Akkus verzichtet werden und das Programm besteht dann nur noch aus 5 Bytes 75 E8 55 80 FE. In Assembler sieht das übersetzte Listing wie folgt aus:
0001   0000             DOUT .equ 0E8H ;Dies ist DOUT
0002   8100             .org 8100H     ;Anfangsadresse
0003   8100 75 E8 55     mov DOUT,#85  ;DOUT=55h
0004   8103 80 FE       ende  sjmp ende;ShortJump
0005   8105              .end          ;Ende
tasm: Number of errors = 0

Mikrocontroller VI
.
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