⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 as_de.tex

📁 万能汇编工具
💻 TEX
📖 第 1 页 / 共 5 页
字号:
      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 + -