home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Turbo Toolbox
/
Turbo_Toolbox.iso
/
tasm
/
manual.doc
< prev
next >
Wrap
Text File
|
1988-08-28
|
17KB
|
515 lines
TURBO ASSEMBLER 1.0: ZUSÄTZE UND KORREKTUREN IM HANDBUCH
--------------------------------------------------------
Allgemeine Vorbemerkung: Die Groß- und Kleinschreibung der
vordefinierten Symbole (diejenigen, die mit dem Zeichen (@)
anfangen) sind in den Handbüchern nicht korrekt, wenn zwischen
Groß- und Kleinschreibung (wie bei der Option /ML)
unterschieden wird. Sie müssen durchgängig klein geschrieben
werden.
Die korrekten Bezeichnungen lauten:
@code
@data
@fardata
@fardata?
@curseg
Turbo Assembler Benutzerhandbuch
--------------------------------
Damit Sie die Beispiele einfacher nachvollziehen können, wurden
viele der Beispielprogramme auf die Originaldisketten kopiert.
Sehen Sie sich dazu die Liste der Dateinamen am Ende der
README-Datei durch. Dort finden Sie die Dateinamen mit den
Seitenzahlen, in denen das Beispiel abgedruckt ist.
Seite
47 - Das Beispiel am unteren Rand der Seite muß heißen
10000h
+ 201h
------
10201h
52 - Die Tabelle im Handbuch enthält keine 80287- und 80387-
Befehle. In der folgenden Tabelle finden Sie die
fehlenden Befehle:
Befehl Prozessor Befehl Processor
------------------------------------------------------
FSETPM 287-387 FCOS 387
FPREM1 387 FPREMI 387
FSIN 387 FSINCOS 387
FUCOM 387 FUCOMP 387
FUCOMPP 387
66 - Der erste Satz des letzten Absatzes muß folgendermaßen
lauten: "Wenn Sie mehrere Dateien in einem
Kommandozeilenaufruf assemblieren wollen, können Sie die
Dateinamen mit dem Pluszeichen (+) voneinander trennen:"
Streichen Sie das erste Beispiele, das hinter diesem
Absatz steht.
81 - In der Tabelle zur Kommandozeilenoption /W fehlen einige
Einträge. Fügen Sie die folgenden Optionen ein:
RES - Warnung bei der Verwendung reservierter Wörter
TPI - Warnung, daß Turbo Pascal nicht zulässig ist
PQK - Warnung, wenn bei [const] eine Konstante
angenommen wird
ALN - Segmentausrichtung
82 - Der erste Satz muß folgendermaßen lauten:
"Beim Start des Turbo Assemblers sind standardmäßig alle
Warnungen außer den Warnungen bezüglich ineffizienten
Codes (ICG) und dem Schreiben in Code-Segmenten im
Protected-Mode (PRO) aktiviert.
85 - Im vierten Absatz muß es heißen...
"Der Turbo Assembler sucht zuerst die Datei TASM.CFG in
Ihrem aktuellen Verzeichnis. Wenn Sie mit MS-DOS 3.X oder
einer späteren Version arbeiten, wird zusätzlich das
Verzeichnis durchsucht, aus dem der Turbo Assembler
geladen wurde. Wenn der Turbo Assembler diese Datei..."
106 - Die Befehle des folgenden Beispiels funktionieren nur im
Ideal-Modus:
mov al, [100+8]
und
mov al, [108]
Die entsprechenden Befehle im MASM-Modus lauten:
mov al, ds:[100+8]
und
mov al, ds:[108]
148 - Im ersten Absatz des Abschnitts "Bezeichnungen für
Speicherstellen" muß der letzte Satz wie folgt lauten:
"Die LABEL-Anweisung stellt eine weitere sehr praktische
Methode dar, um Speicherstellen zu bezeichnen, ohne daß
man Speicherplatz reservieren muß."
157 - Der erste Satz sollte folgendermaßen lauten: "Es ist auch
bei der Umwandlung verschiedener Datentypen und bei der
Ausführung von Sprungbefehlen von Bedeutung."
197 - Löschen Sie aus dem ersten Satz des zweiten Absatzes den
folgenden Text: "und weitaus weniger flexibel als die
Registerübergabe."
233 - Fügen Sie die folgenden Datentypen in die Tabelle mit den
EXTRN-Datentypen am Anfang der Seite ein:
DATAPTR Ein NEAR oder FAR-Zeiger auf Daten,
entsprechend dem verwendeten
Speichermodell.
UNKNOWN Ein unbekannter Datentyp.
<Strukturname> Der Name eines vom Benutzer
definierten STRUC-Datentyps.
241 - Löschen Sie den vierten Absatz auf der Seite: "Sie haben
vielleicht bemerkt .... Daten nicht abgeschnitten werden".
249 - Löschen Sie den dritten Absatz auf dieser Seite: "Sie
sollten .... Symboltabelle aufgeführt."
252 - In der letzten Zeile des zweiten Absatzes muß
"aktiviert" durch "ausgeschaltet" ersetzt werden.
254 - Im letzten Satz des zweiten vollständigen Absatzes muß es
heißen: "Mit der Voreinstellung werden Felder, die die
maximale Länge überschreiten, nicht abgeschnitten
(%NOTRUNC)."
265 - Fügen Sie die folgenden bedingten Fehleranweisungen am
Anfang der Seite ein:
.ERRE, .ERRNZ, .ERRDIFI, .ERRIDNI
310,315,318,330 - Ersetzen Sie die Schreibweise der Option -b
jeweils mit -B.
332 - Die Kommentarzeile in der Mitte der Seite sollte wie folgt
lauten:
; ?debug L 15
348 - In der letzten Zeile des ersten Absatzes in der Mitte muß
es heißen: "...DATEI2.ASM liegt und nicht in einem FARDATA-
Segment."
358 - Der letzte Satz des zweiten Absatzes muß folgendermaßen
lauten: "Ein weiterer Vorteil ergibt sich daraus, daß die
mit ARG definierten Labels auf den Gültigkeitsbereich der
Prozedur, in der sie mit der LOCAL-Anweisung deklariert
wurden (siehe den Befehl LOCALS im Referenzhandbuch),
beschränkt sind, so daß man sich keine Sorgen ...."
487 - Im zweiten Satz des ersten Paragraphen muß folgendes
stehen: "Im folgenden Beispiel wird nur das erste Byte des
Strukturelements A mit 1 und nur das erste Byte des
Strukturelements B mit 2 initialisiert, während das zweite
beider Strukturelemente mit 20h (einem Leerzeichen)
initialisiert wird."
497 - Die zweite Anweisung "jnz SchleifenAnfang" im Beispiel
muß "jnz KurzeSchleife" heißen.
517 - Der Befehl "mov ax, [InitWert]" solte hinter dem Befehl
"mov es, ax" stehen.
589 - Der letzte Satz im letzten Absatz muß heißen: "Der
Operator liefert eine Zahl, in der der Datentyp der
verschiedenen Symbole codiert ist, mit Ausnahme bei nicht
definierten Bezeichnern:"
599 - In den letzten deri Sätze des ersten Absatzes müssen
Ideal und MASM vertauscht werden. Es sollte also heißen,
"Im Ideal-Modus werden .... Im MASM-Modus, ....".
Turbo Assembler Referenzhandbuch
--------------------------------
Seite
5 - Der Unterpunkt am unteren Ende der Seite sollte lauten:
"Der erste Buchstabe jedes Worts, das in einem Symbolnamen
vorkommt, muß ein Großbuchstabe sein, außer bei
Segmentsymbolen, die klein geschrieben werden müssen. Der
Rest des Wortes wird klein geschrieben.
@FileName
@WordSize
@curseg
@fardata
Ändern Sie das vordefinierte Symbol @Code in @code, so daß
das Beispiel folgendermaßen lautet:
mov ax,@code
mov dx,ax
ASSUME ds:@code
8 - Ändern Sie das vordefinierte Symbol @Data in @data, so daß
das Beispiel wie folgt aussieht:
mov ax,@data
mov ds,ax
ASSUME ds:@data
Im ersten Satz des Anmerkungsabschnitts von @Datasize muß
ergänzt werden, daß das Speichermodell TINY ebenfalls den
Wert 0 liefert.
9 Das Beispiel für ??Date muß lauten:
ASMDATE db ??Date
Ersetzen Sie das vordefinierte Symbol @FarData in @fardata
und das Beispiel wie folgt:
mov ax,@fardata
mov ds,ax
ASSUME ds:@fardata
10 Ändern Sie das vordefinierte Symbol @FarData? in @fardata?
sowie das entsprechende Beispiel:
mov ax,@fardata?
mov ds,ax
ASSUME ds:@fardata?
15 - In Tabelle 2.2 muß der Operator SYMTYPE am Ende eingefügt
werden.
16 - Fügen Sie den folgenden Satz im Abschnitt Anmerkungen für
Operator * ein: "Der Operator * kann auch zwischen einem
Register und einer Konstante verwendet werden, wenn die
Adressierungsarten des 80386-Prozessor unterstützt werden.
24 - Das Beispiel für DWORD lautet:
call dword fptr
28- Das Beispiel für HIGH lautet:
; MASM- und Ideal-Modus
Magic equ 1234h
mov cl, HIGH Magic
Ideal
; Nur im Ideal-Modus
Big DD 12345678h
mov ax, [word HIGH Big] ; lädt 1234h in AX
31 - Das Beispiel für LOW lautet:
; MASM- und Ideal-Modus
Magic equ 1234h
mov bl, LOW Magic
Ideal
; Ideal mode only
Big DD 12345678h
mov ax, [word LOW Big] ; lädt 5678h in AX
32 - Das Beispiel für MASK lautet:
stat record a:3,b:4,c:5
neustat stat <0,2,1>
mov al, neustat
and al, MASK b
mov al, MASK stat
34 - Das Beispiel für NEAR lautet:
Ideal
proc farproz far
; Funktionsbefehle
endp farproz
; noch im gleichen Segment
push cs
call NEAR farproz
36 - Das Beispiel für PROC lautet:
.model large
.code
Ideal
call proc Test1
proc Test1
37 - Fügen Sie DATAPTR in die Liste der beim PTR-Operator
zugelassenen Datentypen. Im MASM kann der Ausdruck rechts
von PTR auch eine Konstante ergeben.
41 - Im letzten Absatz der Anmerkungen zum SIZE-Operator muß es
heißen: "Im Ideal-Modus, liefert SIZE die Anzahl der Bytes
innerhalb einer DUP-Anweisung. Un die Anzahl der Bytes der
DUP-Anweisung zu ermitteln, sollten Sie den Befehl LENGTH
verwenden."
43 - Löschen Sie MASM aus dem Abschnitt Modus in SYMTYPE.
44 - Fügen Sie DATAPTR in der Liste der Datentypen beim THIS-
Operator ein.
45 - Das Beispiel für den Operator .TYPE lautet:
if (.type ABC) and 3
assume ds:seg abc
mov ax, seg abc
mov ds, ax
endif
52 - Beim %-Operator fügen Sie diese Zeilen am Ende des ersten
Absatzes ein: "Der ausgewertete Ausdruck wird als
numerischer String in der AKTUELLEN ZAHLENBASIS
dargestellt. Hinter % kann auch ein Textmakro angegeben
werden, wobei das Makro-Argument vollständig durch das
Textmakro erstzt wird."
53 - Fügen Sie einen Abschnitt für die %-Anweisung ein,
die als einzeiliges Makro alle aktuellen Textmakros
als Argumente verwendet.
62 - Fügen Sie den folgenden Satz am Ende der Anmerkungen zur
Anweisung ALIGN an: "ALIGN erzeugt eine Warnung, wenn die
Segmentausrichtung nicht streng genug erfolgt."
63 - Fügen Sie DATAPTR in der Liste der zulässigen Datentypen
im dritten Absatz ein.
65 - Das Beispiel für die Anweisung ARG sollte wie folgt
lauten:
fp PROC FAR
ARG SRC:WORD,DEST:WORD = ARGLEN
push bp
mov bp,sp
mov di,DEST
mov si,SRC
;<Prozedur-Befehle>
pop bp
ret ARGLEN
fp ENDP
70 - Die Syntaxbeschreibung für COMMENT muß wie folgt lauten:
COMMENT Trennzeichen [Text]
[Text]
Trennzeichen
72 - Entfernen Sie den zweiten Absatz der Anmerkungen zur
Anweisung .CREF; .CREF wird nämlich in der Voreinstellung
nicht verwendet.
Der dritte Absatz muß wie folgt lauten: "Der Turbo Assembler
schreibt Cross-Referenz-Informationen sowohl in die
Listing-Datei als auch in eine getrennte .XRF-Datei."
75- Im ersten Satz des Abschnitts Anmerkungen für die Anweisung
%CTLS sollte stehen, daß die Anweisungen zur Listing-
Steuerung normalerweise NICHT erscheinen.
79 - Fügen Sie DATAPTR in Liste der zulässigen Datentypen im
ersten Absatz dieser Seite ein.
Ändern Sie die Zahl im ersten Unterpunkt von
4.294,967.295 auf 2.147.483.647 .
81 - Fügen Sie DATAPTR in die Liste der zulässigen Datentypen
in den zweiten Absatz des Abschnitts Anmerkungen unter DF
ein.
82 - Die Anweisung DISPLAY ist sowohl im MASM-Modus als auch im
Ideal-Modus verfügbar.
Sie können den Substitutionsoperator innerhalb eines
Strings verwenden, der in einer DISPLAY-Anweisung
übergeben wird. Zum Beispiel:
MAKE_DATEN macro WERT
display "Initialisiere ein Byte mit: &WERT&"
db WERT
endm
84 - In DQ muß der Wertebereich im ersten Unterpunkt von
-2^64+1 bis 2^64-1.
86 - Fügen Sie DATAPTR in die Liste der gültigen Datentypen im
ersten Absatz auf der Seite ein. Beim Wertebereich im
ersten Unterpunkt muß es 32767 und nicht 65536 heißen.
93 - Die EQU-Anweisung ist sowohl im MASM- als auch im Ideal-
Modus verfügbar.
105 - Fügen Sie folgenden Satz hinter den Anmerkungen zur EVEN-
Anweisung ein: "Bei der EVEN-Anweisung wird eine Warnung
erzeugt, wenn die Ausrichtung nicht streng genug erfolgt".
106 - Hinter den Anmerkungen zu EVENDATA fügen Sie ein: "Die
Ausrichtung auf geradzahlige Adressen erfolgt durch
Erhöhung des Positionszeigers, ohne daß Daten ausgegeben
werden. Das ist besonders für Segmente mit nicht
initialiserten Daten wichtig. Sie erhalten ebenfalls eine
Warnung, wenn die Segmentausrichtung nicht streng genug
ist."
107 - Fügen Sie DATAPTR in die Liste der Datentypen unter den
Anmerkungen von EXTRN ein. Jedes Argument von EXTRN
kann auch mit der selben Syntax wie in ARG oder LOCAL
angegeben werden.
111 - Fügen Sie DATAPTR in die Liste der Datentypen unter den
Anmerkungen von GLOBAL ein. Jedes Argument von EXTRN
kann auch mit der selben Syntax wie in EXTRN, ARG oder
LOCAL angegeben werden.
126 - Fügen Sie DATAPTR in die Liste der Datentypen unter den
Anmerkungen von LABEL ein.
129 - Löschen Sie den ersten Teil des Satzes, "Wenn Sie die
speziellen Eigenschaften des MASM51 aktiviert haben...",
lassen Sie aber, "Sie können alternativ auch folgende
Syntax für jede lokale Definition verwenden.", stehen.
130 - Fügen Sie DATAPTR in die Liste der zulässigen Datentypen
im zweiten Unterpunkt ein.
134 - Löschen Sie den dritten Unterpunkt bei den Anmerkungen zur
Anweisung MASM51. Im letzten Unterpunkt muß es heißen:
"PROC-Anweisungen für erweiterte Sprachmodelle werden alle
PUBLIC mit einem führenden Unterstrich deklariert, wenn
als Sprache C verwendet wird."
135 - Fügen Sie am Ende des letzten Satzes folgende
Einschränkung ein: "..., wenn Sie 16-Bit-Segmente
verwenden wollen."
149 - Sie können den Substitutionsoperator &Text& auch innerhalb
eines Strings der %OUT-Anweisung verwenden. Zum Beispiel:
MAKE_DATEN macro WERT
%out Initialisiere ein Byte mit: &WERT&
db WERT
endm
157 - Im Beispiel von PROC muß es heißen:
ZeileLesen proc near
; Befehle in der Prozedur
ZeileLesen endp
call ZeileLesen
159 - Bei den Anmerkungen zu %PUSHLCTL, muß %WCL durch %INCL
und %NOWCL durch %NOINCL ersetzt werden.
170 - Im Beispiel für die STRUC-Anweisung muß es heißen
Ideal
model small
dataseg
struc B
B1 DD 0
B2 DB ?
ends
struc A
A1 DW ?
A2 DD ?
binst B <>
struc
D DB "XYZ"
E DQ 1.0
ends
ends
ainst A <>
cinst A ?
dinst A
codeseg
mov al, [ainst.binst.b2]
mov al, [ainst.d]
mov ax, [word cinst.binst.b1]
end
175 - Entfernen Sie den letzten Absatz unter den Anmerkungen zu
%TRUNC. Beachten Sie bitte, daß %NOTRUNC die
standardmäßige Voreinstellung beim Aufruf des Turbo
Assemblers ist.
179 - Aus der Tabelle der 32-Bit-Register des 80386 müssen Sie
EDS und EES entfernen.
180 - Fügen Sie fogende Warnungen ein:
RES - Warnung bei der Verwendung reservierter Wörter
TPI - Warnung, daß Turbo Pascal nicht zulässig ist
PQK - Warnung, wenn bei [const] eine Konstante
angenommen wird
ALN - Segmentausrichtung
188 - Im Abschnitt mit MAusdr9 muß folgendes eingefügt werden:
o MAusdr10
207 - Streichen Sie den ersten Satz des zweiten Absatzes:
"Beachten Sie...".