8086 Assembler (MS-DOS):
MASM bzw. ML - Pseudobefehle

Die nachstehende Auswahl von Pseudobefehlen ist überwiegend ohne Beispiele angegeben. Für Beispiele zu den Macros sei auf die Routinensammlung für COM-Programme verwiesen.

Pseudobefehle sind Befehle an das Programm, welches die Assemblierung durchführt. In diesem Fall sind es Anweisungen an MASM bzw. ML.

Ausgabesteuerung für die Programmauflistung
.PAGEStellt die Länge und Breite einer Druckseite ein
.TITLEDefiniert den Titel eines Listings
.SUBTTLDefiniert den Untertitel eines Quelltextabschnitts
.XCREFUnterdrückt die Ausgabe der Querverweisliste (Cross Reference) ab der aktuellen Position des Pseudobefehls bis zum nächsten Befehl ".CREF"
.CREFGegenstück zu ".XCREF"
.XLISTUnterdrückt die Ausgabe des Assemblerlistings ab der aktuellen Position des Pseudobefehls bis zum nächsten ".LIST"
.LISTGegenstück zu ".XLIST"
.LALLBewirkt bei der Ausgabe des Assemblerlistings, so dass alle Makrotexte des Haupttextes und jeder Erweiterung ausgegeben werden
.SALLUnterdrückt die Ausgabe der Makros
.XALLGibt bei Makros ausschließlich die Zeilen aus, die Objektcode erzeugen
.LFCONDListet alle bedingten Blöcke auf, die als logisch falsch ausgewertet wurden
.SFCONDListet als falsch ausgewertete bedingte Blöcke nicht auf
.TFCONDDie Wirkung der letzten Anweisung .LFCOND bzw. SFCOND wird umgekehrt
.OUTVeranlasst die Ausgabe von Systemmeldungen auf dem Bildschirm während des Assemblierens
Bedingte Assemblierung
Logisch „falsch” hat den Wert 0, logisch „wahr” hat einen von 0 verschiedenen Wert
ELSEDer folgende Befehlsblock soll assembliert werden, wenn der vorangegangene Vergleich logisch falsch war
ENDIFAngabe des Endes einer bedingten Assemblierung
IFErgibt logisch wahr, wenn der angegebene Ausdruck ungleich Null ist
IFBErgibt logisch wahr, wenn das Argument leer ist
IFDEFErgibt logisch wahr, wenn das spezifizierte Symbol in- oder extern definiert wurde
IFEErgibt logisch wahr, wenn der Ausdruck gleich Null ist
IFIDNErgibt logisch wahr, wenn die beiden angegebenen Zeichenketten identisch sind
IFIDFErgibt logisch wahr, wenn die beiden eingegebenen Zeichenketten sich unterscheiden
IFNBErgibt logisch wahr, wenn das Argument nicht leer ist
IFNDEFErgibt logisch wahr, wenn das spezifizierte Symbol nicht definiert wurde
IF1Ergibt logisch wahr, wenn der Assembler den ersten Durchlauf durchführt
IF2Ergibt logisch wahr, wenn sich der Assembler im zweiten Durchgang befindet
Datendefinitionen
DBDefiniert Byte-Speicherbereich für Daten (8 Bit); es lassen sich mehrere Werte zuweisen
DDDefiniert Doppelwort-Speicherbereich für Daten (32 Bit); es lassen sich mehrere Werte zuweisen
DQDefiniert Vierfachwort-Speicherbereich für Daten (64 Bit); es lassen sich mehrere Werte zuweisen
DSReserviert die angegebene Anzahl von Bytes für die spätere Verwendung
DTWeist zehn Bytes zu (wird zumeist in der Fließkomma-Arithmetik benutzt)
DWDefiniert Wort-Speicherbereich für Daten (16 Bit); es lassen sich mehrere Werte zuweisen
Externe Informationen
EXTRNGibt Symbole an, die in anderen Modulen definiert wurden. Damit kann auf bereits überprüfte Aeeemblerquelltexte mit Querverweisen zugegriffen werden
INCLUDEFügt den Quelltext mit dem angegebenen Dateinamen an dieser Stelle in das Listing ein
PUBLICKennzeichnet Symbole, die andere Assemblerprogramme verwenden können, nachdem Sie verknüpft worden sind
Makrodefinitionen
ENDMSchließt eine Makrodefinition ab und kennzeichnet das Makroende
EXITMBeendet die Ausführung eines Makros aufgrund eines vorangegangenen Vergleichs
IRP IRP dummyname,<Parameter,,,> Wiederholt die Anweisungen zwischen „IRP” und „ENDM” für jedes Argument in der angegebenen Argumentliste mit den einzelnen Elementen. Beispiel:
      irp    zeichen,<'A','B','Hugo'>
      db     "zeichen"
      endm
wird aufgelöst als:
      db  'A'
      db     'B'
      db     'Hugo'
IRPC IRPC dummyname,string Fast wie „IRP”. Es wird statt der Argumentliste eine Zeichenkette übergeben, die Anweisungen werden für jede Zeichenstelle der Zeichenkette wiederholt. Beispiel mit der 5 Zeichen langen Zeichenkette „teddy” und veränderten Wertzuweisungen zum symbolischen Namen „n”:
Beispiel mit der 5 Zeichen langen Zeichenkette „teddy” und veränderten Wertzuweisungen zum symbolischen Namen „n”:
n   =    'A'
    irpc X,teddy
    db   n
n   =    n+1
endm
wird aufgelöst und assembliert in:
 = 0041  n    =    'A'
     41       db   n
     42       db   n
     43       db   n
     44       db   n
     45       db   n
Bei diesem Beispiel wird der erste Parmeter „X” genutzt. Bei der db-Anweisung im Makrokörper müss der Parameter in Ampersands (&) eingekleidet werden.
    irpc  X,teddy
    db   '&X&'
endm
wird aufgelöst und assembliert in:
    74    db   't'
    65    db   'e'
    64    db   'd'
    64    db   'd'
    79    db   'y'
LOCALBewirkt, dass der Assembler jede mit diesem Befehl deklarierte Marke als lokal auffasst
MACRODeklariert die vorangehende Marke als Namen des Makros. In der gleichen Zeile können Übergabeparameter vereinbart werden.
PURGELöscht das angegebene Makro aus dem Arbeitsbereich des Assemblers, so dass der benutzte Speicher wieder verwendet werden kann
REPTWiederholt alle Anweisungen, die sich zwischen "REPT" und "ENDM" befinden so häufig, bis die angegebene Anzahl erreicht ist
Programmblöcke
GROUPFasst mehrere Segmente unter einem Namen zusammen. so dass sie alle in einem 64-KByte-Bereich innerhalb des Arbeitsspeichers liegen
NAMEWeist einem Modul den vorangehenden Namen zu
Segmentangaben
ASSUMETeilt dem Assembler mit, welches Segment den angegebenen Segmentregistern zugeordnet werden wird
ENDSMarkiert das Ende eines Segmente
SEGMENTKennzeichnet den Beginn eines Segments
EQUWeist einem symbolischen Namen einen konstanten Wert zu
=Weist einem symbolischen Namen einen Wert zu. Anders als bei „EQU” kann der Wert verändert werden.
Unterprogramme (Prozeduren)
ENDPMarkiert das Ende einer Prozedur
PROCKennzeichnet den Beginn einer Prozedur
Sonstiges
ENDKennzeichnet das Ende des Assemblerprogramms
EVENSetzt den Befehlszähler auf eine gerade Adresse
ORGSetzt den Befehlszähler auf die angegebene Adresse
.RADIXÄndert die Standardbasis zur Angabe von Zahlen auf jede beliebige Basis
Letztes Upload: 24.03.2023 um 11:35:12 • Impressum und Datenschutzerklärung