Home

8086 Assembler:
MASM bzw. ML - Pseudobefehle


Zurück zur
Assemblerauswahlseite
Die nachstehende Auswahl von Pseudobefehlen ist überwiegend ohne Beispiele angegeben. Für Beispiele zu den Macros sei auf die  i 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
.PAGE Stellt die Länge und Breite einer Druckseite ein
.TITLE Definiert den Titel eines Listings
.SUBTTL Definiert den Untertitel eines Quelltextabschnitts
.XCREF Unterdrückt die Ausgabe der Querverweisliste ("Gross Reference") ab der aktuellen Position des Pseudobefehls bis zum nächsten Befehl ".CREF"
.CREF Gegenstück zu ".XCREF"
.XLIST Unterdrückt die Ausgabe des Assemblerlistings ab der aktuellen Position des Pseudobefehls bis zum nächsten ".LIST"
.LIST Gegenstück zu ".XLIST"
.LALL Bewirkt bei der Ausgabe des Assemblerlistings, so dass alle Makrotexte des Haupttextes und jeder Erweiterung ausgegeben werden
.SALL Unterdrückt die Ausgabe der Makros
.XALL Gibt bei Makros ausschließlich die Zeilen aus, die Objektcode erzeugen
.LFCOND Listet alle bedingten Blöcke auf, die als logisch falsch ausgewertet wurden
.SFCOND Listet als falsch ausgewertete bedingte Blöcke nicht auf
.TFCOND Die Wirkung der letzten Anweisung .LFCOND bzw. SFCOND wird umgekehrt
.OUT Veranlasst 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
ELSE Der folgende Befehlsblock soll assembliert werden, wenn der vorangegangene Vergleich logisch falsch war
ENDIF Angabe des Endes einer bedingten Assemblierung
IF Ergibt logisch wahr, wenn der angegebene Ausdruck ungleich Null ist
IFB Ergibt logisch wahr, wenn das Argument leer ist
IFDEF Ergibt logisch wahr, wenn das spezifizierte Symbol in- oder extern definiert wurde
IFE Ergibt logisch wahr, wenn der Ausdruck gleich Null ist
IFIDN Ergibt logisch wahr, wenn die beiden angegebenen Zeichenketten identisch sind
IFIDF Ergibt logisch wahr, wenn die beiden eingegebenen Zeichenketten sich unterscheiden
IFNB Ergibt logisch wahr, wenn das Argument nicht leer ist
IFNDEF Ergibt logisch wahr, wenn das spezifizierte Symbol nicht definiert wurde
IF1 Ergibt logisch wahr, wenn der Assembler den ersten Durchlauf durchführt
IF2 Ergibt logisch wahr, wenn sich der Assembler im zweiten Durchgang befindet
Datendefinitionen
DB Definiert Byte-Speicherbereich für Daten (8 Bit); es lassen sich mehrere Werte zuweisen
DD Definiert Doppelwort-Speicherbereich für Daten (32 Bit); es lassen sich mehrere Werte zuweisen
DQ Definiert Vierfachwort-Speicherbereich für Daten (64 Bit); es lassen sich mehrere Werte zuweisen
DS Reserviert die angegebene Anzahl von Bytes für die spätere Verwendung
DT Weist zehn Bytes zu (wird zumeist in der Fließkomma-Arithmetik benutzt)
DW Definiert Wort-Speicherbereich für Daten (16 Bit); es lassen sich mehrere Werte zuweisen
Externe Informationen
EXTRN Gibt Symbole an, die in anderen Modulen definiert wurden. Damit kann auf bereits überprüfte Aeeemblerquelltexte mit Querverweisen zugegriffen werden
INCLUDE Fügt den Quelltext mit dem angegebenen Dateinamen an dieser Stelle in das Listing ein
PUBLIC Kennzeichnet Symbole, die andere Assemblerprogramme verwenden können, nachdem Sie verknüpft worden sind
Makrodefinitionen
ENDM Schließt eine Makrodefinition ab und kennzeichnet das Makroende
EXITM Beendet 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'
LOCAL Bewirkt, dass der Assembler jede mit diesem Befehl deklarierte Marke als lokal auffasst
MACRO Deklariert die vorangehende Marke als Namen des Makros. In der gleichen Zeile können Übergabeparameter vereinbart werden.
PURGE Löscht das angegebene Makro aus dem Arbeitsbereich des Assemblers, so dass der benutzte Speicher wieder verwendet werden kann
REPT Wiederholt alle Anweisungen, die sich zwischen "REPT" und "ENDM" befinden so häufig, bis die angegebene Anzahl erreicht ist
Programmblöcke
GROUP Fasst mehrere Segmente unter einem Namen zusammen. so dass sie alle in einem 64-KByte-Bereich innerhalb des Arbeitsspeichers liegen
NAME Weist einem Modul den vorangehenden Namen zu
Segmentangaben
ASSUME Teilt dem Assembler mit, welches Segment den angegebenen Segmentregistern zugeordnet werden wird
ENDS Markiert das Ende eines Segmente
SEGMENT Kennzeichnet den Beginn eines Segments
EQU Weist 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)
ENDP Markiert das Ende einer Prozedur
PROC Kennzeichnet den Beginn einer Prozedur
Sonstiges
END Kennzeichnet das Ende des Assemblerprogramms
EVEN Setzt den Befehlszähler auf eine gerade Adresse
ORG Setzt den Befehlszähler auf die angegebene Adresse
.RADIX Ändert die Standardbasis zur Angabe von Zahlen auf jede beliebige Basis