; 72 .mt 8 .mb 8 .fm 1 .hm 1 .pc 32 .pn 103 9.7._____Cross-Referenz Das Cross-Referenz-Programm verarbeitet eine speziell ueber- setzte Druckdatei zu einer Liste aller Adressverweise inner- halb des Moduls einschliesslich der Speicherplaetze, wo sie definiert sind. Die Cross-Referenz kann als Hilfsmittel beim Programmtest genutzt werden. Das Cross-Referenz-Programm erlaubt dem Programmierer das Verarbeiten einer vom Assembler erzeugten Cross-Referenz- Datei. Diese Datei enthaelt Steuerzeichen, die waehrend der Ueberset- zung mit dem Assembler eingesetzt wurden. Das Cross-Referenz-Programm erzeugt eine Liste, die der .PRN- Datei gleicht und zwei zusaetzliche Merkmale besitzt: 1. Jede Quellanweisung wird mit einer Cross-Referenz-Nummer versehen. 2. Am Listenende erscheinen die Variablennamen in alphabeti- scher Reihenfolge. Jedem Namen werden die Nummer der Zeilen in aufsteigender Folge zugeordnet, wo er auftritt. Die Nummer der Zeile, wo er definiert wurde, ist durch # gekennzeichnet. Die Cross-Referenz-Liste ersetzt die .PRN-Datei des Assemblers und erhaelt auch den Dateityp .PRN. 9.7.1.___Erzeugen_einer_Cross-Referenz-Liste Das Erzeugen einer Cross-Referenz-Liste erfolgt in zwei Schritten: 1. Erzeugen einer Cross-Referenz-Datei (.CRF) 2. Generieren einer Cross-Referenz-Liste (.PRN) Der erste Schritt wird im Assembler ausgefuehrt; der zweite im Cross-Referenz-Programm. 9.7.1.1._Erzeugen_einer_Cross-Referenz-Datei Fuer das Erzeugen einer Cross-Referenz-Datei muss in der Kom- mandozeile des Assemblers der /C-Schalter gesetzt werden. Beispiel: ASM =PROG/C damit wird PROG.MAC uebersetzt und PROG.REL (Objektdatei) und PROG.CRF (Cross-Referenz-Datei) erzeugt. 9.7.1.2._Generieren_der_Cross-Referenz-Liste Die Cross-Referenz-Liste wird beim Durchlaufen der .CRF-Datei durch das Cross-Referenz-Programm erzeugt. Der Aufruf erfolgt mit REF Das Programm meldet sich mit einem Stern (*). Nun ist der Name der .CRF-Datei einzugeben: =dateiname Beispiel: REF =PROG es wird die Datei PROG.PRN erzeugt. Diese .PRN-Datei kann unter Nutzung der Betriebssystemkomman- dos gedruckt oder auf dem Bildschirm angezeigt werden. Zusaetzlich unterstuetzt REF die gleichen Ausgabegeraete wie der Assembler. Beispiel: REF LST:=PROG gibt die Liste auf den Drucker aus. Es wird keine Disketten- datei erzeugt. REF TTY:=PROG Die Ausgabe erfolgt nur auf dem Bilschirm. Es ist auch moeglich, ein anderes Laufwerk fuer die Ausgabe anzugeben. Beispiel: REF B:=A:PROG Die Diskette mit PROG.CRF befindet sich im Laufwerk A; PROG.PRN soll auf die Diskette gebracht werden, die im Lauf- werk B liegt. Nach Beenden meldet sich REF mit einem Stern (*) zurueck, es kann ein neuer Dateiname eingegeben werden. Die Rueckkehr zum Betriebssytem erfolgt mittels ^C. Die Druckdatei kann auch einen anderen Namen und einen anderen Dateityp erhalten, dann sind diese anzugeben. Beispiel: REF PROG.CRL=PROG bzw. REF PROGREF=PROG Die obere Kommandozeile erzeugt eine Druckdatei mit dem Namen PROG.CRL; die untere generiert eine Datei mit der Bezeichnung PROGREF.PRN. Dateitypen koennen angegeben werden, um die Cross-Referenz- Liste von der Druckdatei des Assemblers zu unterscheiden. 9.7.2.___Pseudooperationen_zur_Listensteuerung Die Option fuer das Erzeugen einer Cross-Referenz kann fuer Programmabschnitte aber nicht fuer das ganze Programm angewen- det werden. Zum Steuern des Auflistens oder Weglassens der Cross-Referenz sind in der Quelldatei die Pseudooperationen .CREF und .XCREF anzugeben. Sie koennen an jeder beliebigen Stelle im Programm in das Operationsfeld geschrieben werden. .CREF und .XCREF haben keine Argumente. Pseudooperation Bedeutung -------------------------------------------------------------- .CREF Erzeugen der Cross-Referenz .CREF ist die Standardbedingung: .CREF ist zu verwenden, wenn nach einem .XCREF das Erzeugen der Cross-Referenz wieder gestat- tet werden soll. .CREF wirkt, bis ein .XCREF erscheint. Bemerkung: .CREF wirkt nur, wenn in der Kommandozeile des Assemblers der /C-Schalter gesetzt wurde. .XCREF Unterdruecken der Cross-Referenz .XCREF schaltet die Wirkung von .CREF aus. .XCREF unterdrueckt die Cross-Referenz fuer Programmabschnitte. Weil weder .CREF noch .XCREF Wirkung haben, wenn nicht der /C-Schalter in der Assembler-Kommandozeile gesetzt ist muss .XCREF nicht verwendet werden, wenn eine normale Liste (ohne Cross-Referenz) ge- wuenscht wird. Das wird auch erreicht ein- fach durch Weglassen des /C-Schalters in der Kommandozeile. 9.8._____Uebersicht_ueber_die_Pseudooperationen_des_Assemblers Bemerkung: * Z80 - Pseudooperationen kein Stern 8080 - Pseudooperationen 9.8.1._Einzelfunktions-Pseudooperationen Pseudooperationen zur Auswahl der Anweisungsliste Seite .Z80 23 .8080 23 Pseudooperationen zur Daten- und Symboldefinition Seite <name> ASET <exp> 28 BYTE EXT <symbol> 26 BYTE EXTRN <symbol> 26 BYTE EXTERNAL <symbol> 26 DB <exp>[,<exp>...] 24 DB <string>[,<string>...] 24 DC <string> 24 * DEFB <exp>[,<exp>...] 24 * <name> DEFL <exp> 28 * DEFM <string>[,<string>...] 24 * DEFS <exp>[,<exp>...] 25 * DEFW <exp>[,<exp>...] 26 DS <exp>[,<val>] 25 DW <exp>[,<exp>...] 26 ENTRY <name>[,<name>...] 27 <name> EQU <exp> 26 EXT <name>,[<name>...] 26 EXTRN <name>[,<name>...] 26 EXTERNAL <name>[,<name>...] 26 GLOBAL <name>[,<name>...] 27 PUBLIC <name>[,<name>...] 27 <name> SET <exp> (Nicht fuer Z80-Anweisungs- liste!) 28 Pseudooperationen zur Zuweisung des Speicherzuordnungs- zaehlers Seite ASEG 29 CSEG 29 DSEG 30 COMMON /<blockname>/ 31 ORG 32 .PHASE <exp> 32 .DEPHASE 32 Dateibezogene Pseudooperationen Seite .COMMENT <delim><text><delim> 33 END [<exp>] 34 INCLUDE <filename> 35 $INCLUDE <filename> 35 MACLIB <filename> 35 NAME ("modulname") 35 .RADIX <exp> 36 .REQUEST <filename>[,<filename>...] 36 9.8.2._Pseudooperationen_zur_Listensteuerung Pseudooperationen zur Formatsteuerung Seite * *EJECT [<exp>] (ein * ist Teil der Pseudooperation) 38 $EJECT 38 PAGE <exp> 38 SUBTTL [<text>] 38 TITLE <text> 38 $TITLE [<text>] 38 38 Allgemeine Pseudooperationen zur Listensteuerung Seite .LIST 39 .XLIST 39 .PRINTX <delim><text><delim> 40 Pseudooperationen zur bedingten Listensteuerung Seite .SFCOND 40 .LFCOND 40 .TFCOND 41 Pseudooperationen zur Listensteuerung der Makroerweiterung Seite .LALL 41 .SALL 41 .XALL 41 Pseudooperationen zur Steuerung der Cross-Referenz Seite .XCREF 42 .CREF 42 9.8.3._Pseudooperationen_zur_Makrofaehigkeit Pseudooperationen zur Makrodefinition Seite <name> MACRO <parameter>[,<parameter>...] 43 ENDM 48 EXITM 48 LOCAL <parameter>[,<parameter>...] 49 Wiederholungspseudooperationen Seite REPT <exp> 46 IRP <dummy>,<parameter in spitze Klammern eingeschlossen> 46 IRPC <dummy>,<string> 47 Pseudooperationen zur bedingten Assemblierung Seite * COND <exp> 52 ELSE 54 * ENDC 54 ENDIF 54 IF <exp> 52 IF <arg> 52 IFB <arg> 53 IFDEF <symbol> 53 IFDIF <arg1>,<arg2> 53 IFE <exp> 53 IFF <exp> 53 IFIDN <arg1>,<arg2> 53 IFNB <arg> 53 IFNDEF <symbol> 53 IFT <exp> 52 IF1 53 IF2 53