Punkt am Anfang
-
.MODEL Small
.STACK 100h
.DATA
.CODEWas hat der Punkt am Anfang immer zu bedeuten ??
Grüße
-
Gehoert zum MASM Syntax.
Der Punkt laeutet ein Assembler-Kommando ein. (Hat wohlgemerkt nichts mit einem OpCode zu tun)
-
sorry, verstehe ich nicht ganz.
-
Nochmal ausfuehrlicher und mit Beispielen:
Ein MASM-Befehl (=Kommando) hat folgendes Format:
**.**Befehl [Parameter (optional)]
Also erwartet der Assembler beim einlesen der Quelltexte nach einem "." einen Befehl, der gewisse Zusatzinformationen zum code liefert oder die Struktur festlegt. (zB. ein Segment einleitet => siehe ".data")
Alles ohne Punkt interpretiert der MASM entweder als OpCode oder als "Offsetmarkierung".
Mit Offsetmarkierung ist zB. ein Variablenname oder eine Sprungmarke im Code gemeint.
Sollte das Eingegebene nicht als "Offsetmarkierung" erkannt werden (ich setze mal voraus, dass dir die Syntax bekannt ist?), wird geschaut, ob es sich dabei um einen gueltigen OpCode handelt. Trifft auch das nicht zu, gibt der Assembler eine Fehlermeldung aus.Wenn nun jedoch das erste Zeichen (spaces werden AFAIK ignoriert) ein "." ist, wird das Folgende wie oben erwaehnt anders verarbeitet.
Im folgenden Text wird dann nach einem MASM bekannten speziellen Befehl gesucht. (wie eben zB. code, data oder model usw.)
-
Diese Syntax kann auch der TASM ab Version 1.0, der MASM erst ab Version 5.0. Wie gesagt, es handelt sich um vereinfachte Segmentanweisungen, diese sind nichts anderes als vordefinierte Makros, die die Segmentanweisungen und die Assume-Anweisung selbst enthalten.
Ich bevorzuge sie nicht und habe sie zufällig heute nur deswegen angewandt als ich jemandem half. Da das erst ab MASM Version 5.0 möglich ist bleibe ich bei der veralteten Form, da es noch viele gibt die den MASM 4.0 benutzen.Code-Hacker