Die nachstehende Auswahl von Pseudobefehlen ist überwiegend ohne Beispiele angegeben. Für Beispiele zu den Macros sei auf die
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 (Cross 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 |