📄 as_de.tex
字号:
assembliert werden, kann diese Option auch mehrfach gegeben werden.}\item{\tty{o}:Bestimmt einen neuen Namen f"ur die von AS zu erzeugende Code-Datei. Wird diese Option mehrfach verwendet, so werden die angegebenen Namen nacheinander den zu assemblierenden Quelldateien zugeordnet; Negation (s.u.) dieser Option in Verbindung mit einem Namen l"oscht den Namen aus der Liste; Negation ohne Namensangabe l"oscht die komplette Liste.}\item{\tty{SHAREOUT}:dito, nur f"ur eine eventuell zu erzeugende SHARE-Datei}\item{\tty{c}: SHARED-Variablen werden in einem Format abgelegt, das die Einbindung in eine C-Quelldatei erlaubt. Die Endung der Datei ist \tty{H}.}\item{\tty{p}: SHARED-Variablen werden in einem Format abgelegt, das die Einbindung in den \tty{CONST}-Block eines Pascal- oder Modula-Programmes erlaubt. Die Endung der Datei ist \tty{INC}.}\item{\tty{a}: SHARED-Variablen werden in einem Format abgelegt, das die Einbindung in eine Assembler-Quelldatei erlaubt. Die Endung der Datei ist \tty{INC}.}\end{itemize}Zu Sinn und Funktion der SHARED-Symbole siehe Kapitel \ref{ChapShareMain}bzw. \ref{ChapShareOrder}.\begin{itemize}\item{\tty{g [Format]}: Mit diesem Schalter erzeugt AS zus"atzlich eine Datei, die Debug-Informationen f"ur dieses Programm enth"alt. Als Format ist dabei entweder ein AS-eigenes Format ({\tt Format=MAP}), eine NoICE-kompatible Kommandodatei ({\tt Format=NOICE}) oder das Format der AVR-Tools ({\tt Format=ATMEL}) erlaubt. Zu den im MAP-Format gespeicherten Informationen geh"ort zum einen die Symboltabelle, zum anderen eine Zuordnung von Quellzeilen zu Maschinenadressen. Eine genauere Beschreibung des benutzten MAP-Dateiformates findet sich in Abschnitt \ref{SectDebugFormat}. Die Endung der Datei ist \tty{MAP}, \tty{NOI} bzw. \tty{OBJ}, je nach gew"ahltem Format. Wird keine explizite Formatangabe gemacht, wird das MAP-Format gew"ahlt.}\item{\tty{noicemask [Wert]}: Normalerweise listet AS in NoICE-Debuginfos nur Symbole aus dem CODE-Segment. Mit dieser Option und einem als Bitmaske zu verstehenden Wert lassen sich andere Symbole aus anderen Segmenten zuschalten. Die Zuordnung von Bits zu Segmenten kann Tabelle \ref{TabSegmentNums} entnommen werden.} \item{\tty{w}: Ausgabe von Warnungen unterdr"ucken;}\item{\tty{E [Datei]}: Die von AS erzeugten Fehlermeldungen und Warnungen in eine Datei umleiten. Anstatt einer Datei k"onnen auch die 5 Standardhandles (STDIN..STDPRN) als !0 bis !4 angegeben werden. Default ist !2, also STDERR. Wird die Dateiangabe weggelassen, so ist der Name der Fehlerdatei gleich dem der Quelldatei, nur mit der Endung \tty{LOG}.}\item{\tty{q}: Dieser Schalter unterdr"uckt alle Meldungen von AS mit Ausnahme von Fehlermeldungen und vom Programm selber erzeugten Ausgaben. Die Assemblierzeit kann dadurch geringf"ugig reduziert werden, und beim Aufruf aus einer Shell heraus kann man sich eine Umleitung ersparen. Der Nachteil ist, da"s man u.U. einige Minuten ,,im Dunklen'' steht... Anstelle von 'q' darf auch 'quiet' geschrieben werden.}\item{\tty{h}: Hexadezimalzahlen mit Klein- anstelle von Gro"sbuchstaben ausgeben. Diese Option ist in erster Linie eine Frage des pers"onlichen Geschmacks.}\item{\tty{i $<$Pfadliste$>$}: gibt eine Liste von Verzeichnissen an, in denen der Assembler automatisch nach Include-Dateien suchen soll, falls er diese nicht im aktuellen Verzeichnis findet. Die einzelnen Verzeichnisse m"ussen durch Semikolons getrennt werden.}\item{\tty{u}: eine Liste der in den Segmenten belegten Bereiche berechnen. Sie ist nur sinnvoll, falls ein Listing erzeugt wird. Diese Option ben"otigt erhebliche zus"atzliche Speicher- und Rechenleistung, im Normalbetrieb sollte sie daher abgeschaltet sein. Da AS aber unabh"angig vom eingeschalteten Listing mit dieser Option auf "uberlappende Speicherbelegung pr"uft, hat sie auch unabh"angig vom Listing einen gewissen Sinn...}\item{\tty{C}: erzeugt eine Liste mit Querverweisen. Aufgelistet wird, welche (globalen) Symbole in welchen Dateien in welchen Zeilen benutzt werden. Auch diese Liste wird nur generiert, falls ein Listing erzeugt wird und belegt w"ahrend der Assemblierung zus"atzlichen Speicherplatz.}\item{\tty{s}: eine Liste aller Sektionen (s. Abschnitt \ref{ChapLocSyms}) ausgeben. Die Verschachtelung wird dabei durch Einr"uckungen angedeutet.}\item{\tty{I}: Analog zur Sektionsliste eine Liste aller bearbeiteten Include-Dateien ausgeben.}\item{\tty{t $<$Maske$>$}: Mit diesem Schalter lassen sich einzelne Komponenten des standardm"a"sig ausgegebenen Assemblerlistings ein-und ausblenden. Welcher Teil dabei welchem Bit zugeordnet ist, ist im "ubern"achsten Abschnitt, der genauer auf das Format des Assemblerlistings eingeht, nachgelesen werden.}\item{\tty{D $<$Symbolliste$>$}: Symbole definieren. Die hinter dieser Option angegebenen, durch Kommas getrennten Symbole werden in der globalen Symboltabelle vor Beginn der Assemblierung abgelegt. Defaultm"a"sig werden diese Symbole als ganze Zahlen mit dem Wert TRUE abgelegt, mit einem nachgestellten Gleichheitszeichen kann aber auch eine andere Belegung gew"ahlt werden. Der dem Gleichheitszeichen folgende Ausdruck darf dabei auch Operatoren oder interne Funktionen beinhalten, jedoch \bb{KEINE} anderen Symbole, selbst wenn diese schon davor in der Liste definiert sein sollten! Zusammen mit den Befehlen zur bedingten Assemblierung (siehe dort) k"onnen so per Kommandozeile aus einer Quelldatei unterschiedliche Programmversionen erzeugt werden. {\bf ACHTUNG!} Wenn case-sensitiv gearbeitet werden soll, mu"s dies in der Kommandozeile {\em vor} Symboldefinitionen angegeben werden, sonst werden Symbolnamen schon an dieser Stelle in Gro"sbuchstaben umgewandelt!}\item{\tty{A}: Die Liste globaler Symbole in einer anderen, kompakteren Form ablegen. Verwenden Sie diese Option, wenn der Assembler bei langen Symboltabellen mit einem Stapel"uberlauf abst"urzt. Eventuell kann diese Option die Arbeitsgeschwindigkeit des Assemblers erh"ohen, dies h"angt jedoch von den Quellen ab.}\item{\tty{x}: Legt die Ausf"uhrlichkeitsstufe von Fehlermeldungen fest. Jedesmal, wenn diese Option angegeben wird, wird die Stufe um eins erh"oht oder gesenkt. W"ahrend auf Stufe 0 (Vorgabe) nur der Fehler selber ausgegeben wird, wird ab Stufe 1 noch eine erweiterte Meldung ausgegeben, anhand der die Identifizierung des Fehlers erleichtert werden soll. Welche Fehlermeldungen welche Zusatzinformationen tragen k"onnen, steht in Anhang \ref{ChapErrMess} mit der Liste aller Fehlermeldungen. Auf Stufe 2 (Maximum) wird zus"atzlich noch die betroffene Quellzeile mit ausgegeben.}\item{\tty{n}: Wird diese Option angegeben, so werden Fehlermeldungen nicht nur mit ihrem Klartext, sondern auch mit ihren im Anhang \ref{ChapErrMess} genannten internen Nummern ausgegeben. Diese Option ist prim"ar f"ur Shells und Entwicklungsumgebungen gedacht, denen mit diesen Nummern die Identifizierung von Fehlern erleichtert werden soll.}\item{\tty{U}: Mit dieser Option schaltet man AS in den case-sensitiven Modus um, d.h. in Namen von Symbolen, Sektionen, Makros, Zeichentabellen und selbstdefinierte Funktionen werden Klein- und Gro"sbuchstaben unterschieden, was normalerweise nicht der Fall ist.}\item{\tty{P}: weist AS an, den von Makroprozessor und bedingter Assemblierung bearbeiteten Quelltext in einer Datei abzulegen. Dieser Datei fehlen zus"atzlich Leer- und reine Kommentarzeilen. Die Endung der Datei ist \tty{I}.}\item{\tty{M}: mit diesem Schalter erzeugt AS eine Datei, in der die Definitionen der Makros aus der Quelldatei abgespeichert werden, die die \tty{EXPORT}-Option verwenden. Diese neue Datei hat den gleichen Namen wie die Quelldatei, lediglich die Endung wird in \tty{MAC} ge"andert.}\item{\tty{G}: Dieser Schalter bestimmt, ob AS Code erzeugen soll oder nicht. Ist er ausgeschaltet, wird die Datei zwar assembliert, aber keine Code-Datei geschrieben. Dieser Schalter ist defaultm"a"sig aktiviert (logisch, sonst bek"ame man ja auch gar kein Codefile).}\item{\tty{r [n]}: Warnungen ausgeben, falls Situationen eintreten, die einen weiteren Pass erfordern. Diese Information kann genutzt werden, um die Anzahl der Durchl"aufe zu verringern. Optional kann man die Nummer des Passes angeben, ab dem diese Warnungen erzeugt werden; ohne Angabe kommen die Warnungen ab dem ersten Pass. Machen Sie sich aber so oder so auf einen ziemlichen Haufen an Meldungen gefa"st!!}\item{\tty{Y}: Mit diesem Schalter weist man AS an, alle Fehlermeldungen wegen zu langer Sprungdistanzen zu verwerfen, sobald die Notwendigkeit eines neuen Durchlaufs feststeht. In welchen (seltenen) Situationen dieser Schalter notwendig ist, kann man in Abschnitt \ref{ForwRefs} nachlesen.}\item{\tty{cpu $<$Name: $>$}: Hiermit kann man man den Zielprozessor vorgeben, f"ur den AS Code erzeugen soll, wenn die Quelldatei keinen {\tt CPU}-Befehl enth"alt und es sich nicht um 68008-Code handelt.}\item{\tty{alias $<$neu$>$=$<$alt$>$}:\\ definiert den Prozessortyp \tty{$<$neu$>$} als einen Alias f"ur den Typen \tty{$<$alt$>$}. Zu den Sinn und Zweck von Aliassen siehe Abschnitt \ref{SectAlias}}\item{{\tt gnuerrors}: Meldungen "uber Fehler bzw. Warnungen und deren Position nicht im Standardformat von AS, sondern in einem dem GNU C-Compiler entlehnten Format anzeigen. Dies erleichtert die Integration von AS in f"ur dieses Format ausgelegte Umgebungen, unterdr"uckt aber gleichzeitig die Anzeige der pr"azisen Fehlerposition innerhalb Makror"umpfen!}\end{itemize}Sofern Schalter keine Argumente ben"otigen und ihre Zusammenziehungkeinen mehrbuchstabigen Schalter ergibt, k"onnen mehrere Schalterauch auf einen Rutsch angegeben werden, wie z.B im folgenden Beispiel:\begin{verbatim} as test*.asm firstprog -cl /i c:\as\8051\include\end{verbatim}Es werden alle Dateien TEST*.ASM sowie die Datei FIRSTPROG.ASMassembliert, wobei f"ur alle Dateien Listings auf der Konsoleausgegeben und Sharefiles im C-Format erzeugt werden. Nach Includessoll der Assembler zus"atzlich im Verzeichnis \verb! C:\AS\8051\INCLUDE !suchen.\parDieses Beispiel zeigt nebenbei, da"s AS als Defaultendung f"ur Quelldateien\tty{ASM} annimmt.\parEtwas Vorsicht ist bei Schaltern angebracht, die ein optionales Argumenthaben: Folgt auf einen solchen Schalter ohne Argument ein Dateiname, soversucht AS, diesen als Argument zu verwerten, was naturgem"a"s schiefgeht: \begin{verbatim} as -g test.asm\end{verbatim}Die L"osung w"are in diesem Fall, die \tty{-g}-Option ans Ende derKommandozeile zu setzen oder ein explizites \tty{MAP}-Argument zuspezifizieren.\parNeben der Angabe in der Kommandozeile k"onnen dauernd ben"otigteOptionen in der Environment-Variablen ASCMD abgelegt werden. Wer z.B.immer Listdateien haben m"ochte und ein festes Includeverzeichnis hat,kann sich mit dem Befehl\begin{verbatim} set ASCMD=-L -i c:\as\8051\include\end{verbatim}eine Menge Tipparbeit ersparen. Da die Environment-Optionen vor derKommandozeile abgearbeitet werden, k"onnen Optionen in derKommandozeile widersprechende im Environment "ubersteuern.\parBei sehr langen Pfaden kann es jedoch auch in der ASCMD-Variablen engwerden. F"ur solche F"alle kann auf eine sog. \ii{Key}- Dateiausgewichen werden, in der die Optionen genauso wie in der Kommandozeileoder ASCMD-Variablen abgelegt werden k"onnen, nur da"s diese Dateimehrere Zeilen mit jeweils maximal 255 Zeichen enthalten darf. Wichtigist dabei, da"s bei Optionen, die ein Argument ben"otigen, sowohl Schalterals auch Argument in \bb{einer} Zeile stehen m"ussen. Der Name derDatei wird AS dadurch mitgeteilt, da"s er mit einem vorangestelltenKlammeraffen in der ASCMD-Variablen abgelegt wird, z.B.\begin{verbatim} set ASCMD=@c:\as\as.key\end{verbatim}Um Optionen in der ASCMD-Variablen (oder der Key-Datei) wieder aufzuheben,kann die Option mit einem vorangestellten Pluszeichen wieder aufgehobenwerden. Soll in einem Einzelfall z.B. doch kein Listing erzeugt werden,so kann es mit\begin{verbatim} as +L <Datei>\end{verbatim}wieder aufgehoben werden. Nat"urlich ist es nicht ganz logisch, eineOption mit einem Pluszeichen zu negieren...UNIX soit qui mal y pense.\parReferenzen auf eine Key-Datei k"onnen nicht nur von der {\ttASCMD}-Variablen aus erfolgen, sondern auch direkt von der Kommandozeileaus, indem man analog zur {\tt ASCMD}-Variablen dem Dateinamen einenKlammeraffen voranstellt:\begin{verbatim} as @<Datei> ....\end{verbatim}Die in einem solchen Fall aus dem Key-File gelesenen Optionen werden soeingearbeitet, als h"atten sie anstelle dieser Referenz in derKommandozeile gestanden - es ist also {\em nicht} wie bei der {\ttASCMD}-Variablen so, da"s sie vor allen anderen Kommandozeilenoptionenabgearbeitet werden w"urden.\parDas Referenzieren eines Key-Files von einem Key-File selber ist nichterlaubt und wird von AS mit einer Fehlermeldung quittiert.\parF"ur den Fall, da"s Sie AS von einem anderen Programm oder einer Shellaufrufen wollen und diese Shell nur Klein- oder Gro"sbuchstaben in derKommandozeile "ubergeben will, existiert folgendes Workaround: Wird vorden Buchstaben der Option eine Tilde gesetzt, so werden die folgendenBuchstaben immer als Kleinbuchstaben interpretiert. Analog erzwingtein Lattenzaun die Interpretation als Gro"sbuchstaben. Es ergebensich z.B. folgende Transformationen:\begin{quote}{\tt /\verb!~!I $\longrightarrow$ /i \\ -\verb!#!u $\longrightarrow$ -U}\end{quote}\parAbh"angig vom Ablauf der Assemblierung endet der Assembler mitfolgenden Returncodes:\begin{description}\item[0]{fehlerfreier Ablauf, h"ochstens Warnungen aufgetreten}\item[1]{Der Assembler hat nur die Aufrufparameter ausgegeben und endete danach sofort.}\item[2]{Es sind Fehler bei der Assemblierung aufgetreten, es wurde kein Codefile erzeugt.}\item[3]{Es trat ein fataler Fehler w"ahrend des Ablaufes auf, der zum sofortigen Abbruch gef"uhrt hat.}\item[4]{Bereits w"ahrend des Starts des Assemblers ist ein Fehler aufgetreten. Dies kann ein Parameterfehler oder eine fehlerhafte Overlay-Datei sein.}\item[255]{Bei der Initialisierung ist irgendein interner Fehler aufgetreten, der auf keinen Fall auftreten sollte...neu booten, noch einmal probieren, und bei Reproduzierbarkeit mit mir Verbindung aufnehmen!}\end{description}Zus"atzlich endet jede Assemblierung einer Datei mit einer kleinenStatistik, die Fehlerzahlen, Laufzeit, Anzahl der Durchl"aufe und freienSpeicher ausgibt. Bei eingeschaltetem Assembler-Listing wird dieseStatistik zus"atzlich auch in das Listing geschrieben.OS/2 \marginpar{{\em OS/2}} erweitert wie Unix das Datensegment einerAnwendung erst dann, wenn sie wirklich mehr Speicher anfordert. EineAngabe wie\begin{quote}{\tt511 KByte verf"ugbarer Restspeicher}\end{quote}bedeutet also nicht einen nahenden Systemabsturz wegen Speichermangel,sondern stellt nur den Abstand zu der Grenze dar, bei der OS/2 einfachein paar mehr Kohlen in den Ofen schaufelt...Da es unter C \marginpar{{\em UNIX}} auf verschiedenen Betriebssystemenkeine kompatible M"oglichkeit gibt, den noch verf"ugbaren Speicher bzw.Stack zu ermitteln, fehlen bei der C-Version diese beiden Angaben ganz.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -