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
|
---|
.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
|