home *** CD-ROM | disk | FTP | other *** search
- ALLGEMEINE FRAGEN UND ANTWORTEN ZUM TURBO ASSEMBLER 1.0
- ------------------------------------------------------
-
- Die folgenden Fragen und Antworten geben Ihnen Tips und
- Hinweise zur Arbeit mit dem Turbo Assembler.
-
-
- F. Wie installiere ich den Turbo Assembler ?
- A. Starten Sie das Programm INSTALL auf der TURBO ASSEMBLER/INSTALLATION
- Diskette. Um das Programm starten zu können, müssen Sie entweder das
- aktuelle Laufwerk wechseln oder INSTALL mit Laufwerksangabe starten:
-
- A:
- INSTALL
-
- oder:
-
- A:INSTALL
-
- Das Installationsprogramm wird dann menügesteuert die Installation
- auf Ihrer Festplatte oder auf einem Zwei-Laufwerkssystem durchführen.
-
- F. Wann verwende ich die verschiedenen Modi, die TASM zur Assemblierung
- bereits bestehender Programme zur Verfügung stellt ?
- A. Modus Voraussetzung für die Benutzung
- -------------------------------------------------------------
- Normal(MASM) - Programm läßt sich unter MASM 4.00 oder
- MASM 5.00 assemblieren.
- Quirks - Programm läßt sich unter MASM 4.00 oder
- MASM 5.00 assemblieren, aber nicht mit TASM
- ohne MASM51 oder QUIRKS.
- Masm51 - Programm benötigt MASM 5.1 zur Assemblierung.
- Masm51 und Quirks - Programm benötigt MASM 5.1 zur Assemblierung,
- aber läßt sich nicht mit TASM im Modus MASM51
- assemblieren.
-
- F. Muß ich den Modus MASM51 immer benutzen, wenn ich Programme assemblieren
- will, die für MASM 5.1 geschrieben wurden ?
- A. Die meisten Programme werden sich auch ohne die MASM51-Anweisung
- assemblieren lassen. Wenn Ihr Programm allerdings MASM 5.1 spezifische
- Dinge benutzt, dann ist es nötig, diesen Modus zu benutzen.
-
- F. Was wird im einzelnen durch die Optionen QUIRKS und MASM51 erreicht ?
- A. Im folgenden wird gezeigt was die verschiedenen Kombinationen von
- QUIRKS und MASM51 bewirken:
-
- Modus Wirkung
- -------------------------------------------------------------
- Quirks - FAR-Sprünge werden als NEAR oder SHORT
- codiert, falls es die CS-Assume-Anweisung
- erlaubt.
- - beim Zugriff auf Variablen wird die Operanden-
- größe allein durch das verwendete Register
- bestimmt
- - Zerstört OFFSET, Segment-Überschreibung,
- etc., Informationen über '=' oder numerische
- 'EQU'-Zuweisungen.
- - Erzwingt bei "EQU"-Zuweisungen mit "PTR" oder
- ":" , daß ein Parameter als Text behandelt
- wird.
-
- Masm51 - Instr, Catstr, Substr, Sizestr und
- "\" -Zeilenfortsetzung ist möglich.
- - "EQU" mit Schlüsselwörtern wird als Text
- behandelt.
- - Führende Leerstellen in "%textmacro" bei
- Makro-Argumenten werden nicht entfernt.
-
- Masm51 and Quirks - Alles was unter QUIRKS oben aufgelistet wurde.
- - Alles was unter MASM51 oben aufgelistet wurde.
- - Lokale Labels mit @@, @F und @B sind möglich.
- - Prozedur-Bezeichner werden in den "extended
- MODEL's" automatisch als PUBLIC deklariert.
- - Near Labels in Unterprogrammen können in
- anderen Unterprogrammen redefiniert werden.
- - "::" Operator ermöglicht die Defintion von
- Symbolen, auf die von außerhalb zugegriffen
- werden kann.
-
- Masm51 and Ideal - Ideal Mode Syntax und Masm51 Text-Makro-
- Anweisungen werden unterstützt.
-
- F. Wann soll ich die DOSSEG oder .STACK-Anweisungen benutzen ?
- A. Benutzen Sie diese Anweisungen nicht, wenn Sie Ihre Assembler-
- Module mit einer Hochsprache binden wollen. Diese Compiler
- verwalten die Segment- und Stack-Anordnung selbst, so daß es
- Konflikte geben könnte. Die DOSSEG-Anweisung wird nur benötigt,
- falls Sie wünschen, daß der Linker die Segmente nach Microsoft-
- Konventionen anordnet.
-
- F. Welche Otionen sind notwendig, falls ich den Turbo Assembler
- verwenden will, um die beim Microsoft C Compiler mitgelieferten
- Dateien zu assemblieren?
- A. Falls Sie Assembler-Module assemblieren wollen, die mit Microsoft
- Compilern geliefert wurden, müssen Sie die MASM51 und QUIRKS-
- Anweisungen benutzen.
- z.B.:
-
- tasm /jmasm51 /jquirks Dateiname
-
- F. Wie erzeuge ich eine COM-Datei ?
- A. Ihre Assembler-Quelle muß im Speichermodell "Tiny" assembliert
- werden (.MODEL TINY) und muß eine ORG 100h-Anweisung enthalten.
- Der Anfang des Code-Segments könnte wie folgt aussehen:
-
- .MODEL TINY
- .CODE
- ORG 100h
- Start:
- .... ; Programmrumpf
- ENDS Start ; definiert "Start" als Einstiegspunkt
- END
-
- Verwenden Sie keine .STACK-Anweisung in einem Programm, aus dem
- Sie eine COM-Datei erzeugen wollen.
-
- TLINK erzeugt eine COM-Datei anstelle einer EXE-Datei, falls
- die /t-Option beim Binden angegeben wurde.
- z.B.:
-
- tlink -t SHOW87
-
- erzeugt SHOW87.COM anstatt SHOW87.EXE.
-
- Es gibt einige Einschränkungen bei der Konvertierung einer EXE-Datei
- in eine COM-Datei. Diese Einschränkungen sind in der IBM-Betriebs-
- systemdokumentation unter "EXE2BIN" beschrieben.
-
- F. Wie assembliere ich mehrere Dateien mit dem Turbo Assembler ?
- A. Turbo Assembler assembliert mehrere Dateien entweder durch Ver-
- wendung von Wildcards oder durch getrennte Angabe der Dateinamen,
- die mit einem "+"-Zeichen zu trennen sind.
- z.B.:
-
- tasm filt + o*
-
- assembliert die Datei FILT.ASM und alle ASM-Dateien, deren Name
- mit einem "o" beginnt.
-
- F. Wie kann ich mehrere Dateien assemblieren, die nicht dieselben
- Kommandozeilen-Parameter haben ?
- A. Der Turbo Assembler benutzt das Semikolon (;), um die Parameter
- in der Kommandozeile zu trennen.
- z.B.:
-
- tasm /zi filt; o*
-
- assembliert die Datei FILT.ASM mit Debug-Informationen,
- und alle ASM-Dateien, deren Name mit einem "o" beginnt ohne
- Debug-Informationen.
-
- F. Microsoft Macro Assembler erlaubt die Definition von Environment-
- Variablen, so daß man sie nicht jedesmal in der Kommandozeile an-
- zugeben braucht.
- Ist das mit dem Turbo Assembler auch möglich ?
- A. Nein, aber der Turbo Assembler bietet eine viel flexiblere
- Möglichkeit, um einem das ständige Eintippen der Parameter zu
- ersparen. Jedesmal wenn Sie den Turbo Assembler starten, sucht
- er erst im aktuellen Verzeichnis und dann in dem Verzeichnis, von
- dem er gestartet wurde (DOS 3.x und höher) nach einer Datei
- "TASM.CFG", die beliebige Kommandozeilen-Parameter enthalten kann.
- Diese Datei wird zuerst ausgewertet. Die Kommandozeilen-Parameter
- können Die Optionen der Konfigurationsdatei überschreiben.
- z.B.:
-
- /t /ml /zi /jJUMPS /jLOCALS
-
- Sie können eine "TASM.CFG"-Datei erzeugen, die folgende Optionen
- enthält:
-
- /t
- /ml
- /zi
- /jJUMPS
- /jLOCALS
-
- Jedesmal wenn Sie den Turbo Assembler starten, verwendet er diese
- Optionen als Voreinstellungen. Sie können auch, falls notwendig,
- für jedes Projekt eine eigene Konfigurationsdatei verwenden, da der
- Turbo Assembler immer zuerst im aktuellen Verzeichnis sucht.
-
- F. Was sind die Kommandodateien des Turbo Assemblers ?
- A. Das sind Dateien, die Turbo Assembler-Kommandozeilen-Parameter
- enthalten und in der Kommandozeile durch einen vorangestellten
- Klammeraffen (@) angegeben werden.
- Wenn Sie zum Beispiel eine Datei "FILE.CMD" haben, die folgendes
- enthält:
-
- /t
- /ml
- /zi
- /jJUMPS
- /jLOCALS
- file1 +
- file2 +
- file3 +
- file4
-
- dann können Sie folgende Kommandozeile verwenden:
-
- tasm @FILE.CMD
-
- anstelle von:
-
- tasm /t /ml /zi /jJUMPS /jLOCALS file1+file2+file3+file4
-
- Beachten Sie, daß der Klammeraffe (@) nicht Bestandteil des
- Dateinamens ist.
-
- F. Ich binde meine eigenen Assembler-Funktionen mit Turbo C.
- Der Linker meldet mir, daß alle meine Funktionen nicht definiert
- sind.
- A. Versichern Sie sich, daß alle Assembler-Symbole, die Sie in
- Turbo C ansprechen, einen führenden Unterstrich besitzen (_).
- Falls Sie die vereinfachten Segmentanweisungen zusammen mit
- dem Turbo C-Speichermodell benutzen, wird der Turbo Assembler
- das für Sie erledigen. Ihr Assembler-Programm muß "case sensitive"
- assembliert werden, d.h. mit der Option /ML oder /MX.
- Siehe Kapitel 6, "Die Schnittstelle zu Turbo C" im Benutzerhandbuch
- des Turbo Assemblers.
-
- F. Kann ich den Backslash (\) anstelle des Schrägstrichs (/) bei der
- Angabe von Optionen verwenden ?
- A. NEIN! Turbo Assembler (und MASM) würden den Backslash als eine
- Datei, die sich im Hauptverzeichnis befindet, behandeln.
- Falls Sie unglücklicherweise folgende Kommandozeile eingegeben
- hätten:
-
- tasm \zi prid&joy.asm
-
- würde der Turbo Assembler (und MASM) versuchen die Datei ZI.ASM
- zu assemblieren. Das würde dazu führen, daß eine Datei namens
- PRID&JOY.ASM (falls sie existiert) durch die erzeugte Objekt-
- Datei überschrieben, oder (falls ZI.ASM nicht existiert)
- gelöscht wird.