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

📄 as_de.html

📁 万能汇编工具
💻 HTML
📖 第 1 页 / 共 5 页
字号:
<LI> Die angegebenen Schalter wirken auf alle angegebenen Quelldateien.
    Sollen mehrere Quelldateien mit unterschiedlich gesetzten
    Schaltern assembliert werden, so mu&szlig; dies in getrennten
    L&auml;ufen erfolgen.</LI>
<LI> Es k&ouml;nnen in einem Durchgang mehrere Dateien assembliert
    werden. Um der Sache die Krone aufzusetzen, d&uuml;rfen die
    Dateiangaben Jokerzeichen enthalten.</LI>
</UL>
Schalterparameter erkennt AS daran, da&szlig; sie durch einen
Schr&auml;gstrich (/) oder Bindestrich (-) eingeleitet werden. Es
gibt dabei sowohl Schalter, die nur aus einem Buchstaben bestehen,
als auch Schalter, die aus einem ganzen Wort bestehen. Immer wenn AS
einen Schalter nicht als ,,Wort-Schalter'' verstehen kann, so
versucht er, die Buchstaben des Wortes als einzelne Schalter zu
interpretieren. Wenn man also z.B.
<PRE>

 -queit

</PRE>
anstelle von
<PRE>

 -quiet

</PRE>
geschrieben h&auml;tte, w&uuml;rde AS die Buchstaben<TT> q, u, e,
i</TT> und<TT> t</TT> als einzelne Schalter auffassen.
Mehrbuchstabige Schalter unterscheiden sich weiterhin von
einbuchstabigen dadurch, da&szlig; AS bei ihnen beliebige
Gro&szlig;-und Kleinschreibungen akzeptiert, w&auml;hrend
einbuchstabige Schalter je nach Gro&szlig;- oder Kleinschreibung
unterschiedliche Bedeutung haben.
<P>
Momentan sind folgende Schalter definiert:<A
NAME="index_SHARED_1"></A>
<UL>
<LI> <TT>l</TT>: Assemblerlisting auf Konsole ausgeben. Falls mehrere
    Passes ausgef&uuml;hrt werden m&uuml;ssen, landen im Gegensatz
    zur n&auml;chsten Option die Listings aller Durchg&auml;nge auf
    der Ausgabe!</LI>
<LI> <TT>L</TT>: Assemblerlisting auf Datei schreiben. Die Listdatei
    erh&auml;lt dabei den gleichen Namen wie die Quelldatei,
    lediglich die Endung wird durch<TT> LST</TT> ersetzt, es sei
    denn...</LI>
<LI> <TT>OLIST</TT>: mit einem zus&auml;tzlichen Argument legt einen
    anderen Pfad bzw. Namen f&uuml;r die Listdatei fest. Falls
    mehrere Dateien assembliert werden, kann diese Option auch
    mehrfach gegeben werden.</LI>
<LI> <TT>o</TT>:Bestimmt einen neuen Namen f&uuml;r 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&ouml;scht den Namen aus der Liste;
    Negation ohne Namensangabe l&ouml;scht die komplette Liste.</LI>
<LI> <TT>SHAREOUT</TT>:dito, nur f&uuml;r eine eventuell zu erzeugende
    SHARE-Datei</LI>
<LI> <TT>c</TT>: SHARED-Variablen werden in einem Format abgelegt, das
    die Einbindung in eine C-Quelldatei erlaubt. Die Endung der Datei
    ist<TT> H</TT>.</LI>
<LI> <TT>p</TT>: SHARED-Variablen werden in einem Format abgelegt, das
    die Einbindung in den<TT> CONST</TT>-Block eines Pascal- oder
    Modula-Programmes erlaubt. Die Endung der Datei ist<TT>
    INC</TT>.</LI>
<LI> <TT>a</TT>: SHARED-Variablen werden in einem Format abgelegt, das
    die Einbindung in eine Assembler-Quelldatei erlaubt. Die Endung
    der Datei ist<TT> INC</TT>.</LI>
</UL>
Zu Sinn und Funktion der SHARED-Symbole siehe Kapitel <A
HREF="#ref_ChapShareMain">2.12</A> bzw. <A
HREF="#ref_ChapShareOrder">3.9.1</A>.
<UL>
<LI> <TT>g [Format]</TT>: Mit diesem Schalter erzeugt AS zus&auml;tzlich
    eine Datei, die Debug-Informationen f&uuml;r dieses Programm
    enth&auml;lt. Als Format ist dabei entweder ein AS-eigenes Format
    (<TT> Format=MAP</TT>), eine NoICE-kompatible Kommandodatei (<TT>
    Format=NOICE</TT>) oder das Format der AVR-Tools (<TT>
    Format=ATMEL</TT>) erlaubt. Zu den im MAP-Format gespeicherten
    Informationen geh&ouml;rt zum einen die Symboltabelle, zum
    anderen eine Zuordnung von Quellzeilen zu Maschinenadressen. Eine
    genauere Beschreibung des benutzten MAP-Dateiformates findet sich
    in Abschnitt <A HREF="#ref_SectDebugFormat">5.2</A>. Die Endung
    der Datei ist<TT> MAP</TT>,<TT> NOI</TT> bzw.<TT> OBJ</TT>, je
    nach gew&auml;hltem Format. Wird keine explizite Formatangabe
    gemacht, wird das MAP-Format gew&auml;hlt.</LI>
<LI> <TT>noicemask [Wert]</TT>: 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 <A
    HREF="#ref_TabSegmentNums">5.2</A> entnommen werden.</LI>
<LI> <TT>w</TT>: Ausgabe von Warnungen unterdr&uuml;cken;</LI>
<LI> <TT>E [Datei]</TT>: Die von AS erzeugten Fehlermeldungen und
    Warnungen in eine Datei umleiten. Anstatt einer Datei k&ouml;nnen
    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<TT> LOG</TT>.</LI>
<LI> <TT>q</TT>: Dieser Schalter unterdr&uuml;ckt alle Meldungen von AS
    mit Ausnahme von Fehlermeldungen und vom Programm selber
    erzeugten Ausgaben. Die Assemblierzeit kann dadurch
    geringf&uuml;gig reduziert werden, und beim Aufruf aus einer
    Shell heraus kann man sich eine Umleitung ersparen. Der Nachteil
    ist, da&szlig; man u.U. einige Minuten ,,im Dunklen'' steht...
    Anstelle von 'q' darf auch 'quiet' geschrieben werden.</LI>
<LI> <TT>h</TT>: Hexadezimalzahlen mit Klein- anstelle von
    Gro&szlig;buchstaben ausgeben. Diese Option ist in erster Linie
    eine Frage des pers&ouml;nlichen Geschmacks.</LI>
<LI> <TT>i &lt;Pfadliste&gt;</TT>: 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&uuml;ssen durch Semikolons getrennt
    werden.</LI>
<LI> <TT>u</TT>: eine Liste der in den Segmenten belegten Bereiche
    berechnen. Sie ist nur sinnvoll, falls ein Listing erzeugt wird.
    Diese Option ben&ouml;tigt erhebliche zus&auml;tzliche Speicher-
    und Rechenleistung, im Normalbetrieb sollte sie daher
    abgeschaltet sein. Da AS aber unabh&auml;ngig vom eingeschalteten
    Listing mit dieser Option auf &uuml;berlappende Speicherbelegung
    pr&uuml;ft, hat sie auch unabh&auml;ngig vom Listing einen
    gewissen Sinn...</LI>
<LI> <TT>C</TT>: 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&auml;hrend der Assemblierung
    zus&auml;tzlichen Speicherplatz.</LI>
<LI> <TT>s</TT>: eine Liste aller Sektionen (s. Abschnitt <A
    HREF="#ref_ChapLocSyms">3.8</A>) ausgeben. Die Verschachtelung
    wird dabei durch Einr&uuml;ckungen angedeutet.</LI>
<LI> <TT>I</TT>: Analog zur Sektionsliste eine Liste aller bearbeiteten
    Include-Dateien ausgeben.</LI>
<LI> <TT>t &lt;Maske&gt;</TT>: Mit diesem Schalter lassen sich einzelne
    Komponenten des standardm&auml;&szlig;ig ausgegebenen
    Assemblerlistings ein-und ausblenden. Welcher Teil dabei welchem
    Bit zugeordnet ist, ist im &uuml;bern&auml;chsten Abschnitt, der
    genauer auf das Format des Assemblerlistings eingeht, nachgelesen
    werden.</LI>
<LI> <TT>D &lt;Symbolliste&gt;</TT>: Symbole definieren. Die hinter
    dieser Option angegebenen, durch Kommas getrennten Symbole werden
    in der globalen Symboltabelle vor Beginn der Assemblierung
    abgelegt. Defaultm&auml;&szlig;ig werden diese Symbole als ganze
    Zahlen mit dem Wert TRUE abgelegt, mit einem nachgestellten
    Gleichheitszeichen kann aber auch eine andere Belegung
    gew&auml;hlt werden. Der dem Gleichheitszeichen folgende Ausdruck
    darf dabei auch Operatoren oder interne Funktionen beinhalten,
    jedoch<B> KEINE</B> anderen Symbole, selbst wenn diese schon
    davor in der Liste definiert sein sollten! Zusammen mit den
    Befehlen zur bedingten Assemblierung (siehe dort) k&ouml;nnen so
    per Kommandozeile aus einer Quelldatei unterschiedliche
    Programmversionen erzeugt werden.<B> ACHTUNG!</B> Wenn
    case-sensitiv gearbeitet werden soll, mu&szlig; dies in der
    Kommandozeile<EM> vor</EM> Symboldefinitionen angegeben werden,
    sonst werden Symbolnamen schon an dieser Stelle in
    Gro&szlig;buchstaben umgewandelt!</LI>
<LI> <TT>A</TT>: Die Liste globaler Symbole in einer anderen, kompakteren
    Form ablegen. Verwenden Sie diese Option, wenn der Assembler bei
    langen Symboltabellen mit einem Stapel&uuml;berlauf
    abst&uuml;rzt. Eventuell kann diese Option die
    Arbeitsgeschwindigkeit des Assemblers erh&ouml;hen, dies
    h&auml;ngt jedoch von den Quellen ab.</LI>
<LI> <TT>x</TT>: Legt die Ausf&uuml;hrlichkeitsstufe von Fehlermeldungen
    fest. Jedesmal, wenn diese Option angegeben wird, wird die Stufe
    um eins erh&ouml;ht oder gesenkt. W&auml;hrend 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&ouml;nnen,
    steht in Anhang <A HREF="#ref_ChapErrMess">A</A> mit der Liste
    aller Fehlermeldungen. Auf Stufe 2 (Maximum) wird zus&auml;tzlich
    noch die betroffene Quellzeile mit ausgegeben.</LI>
<LI> <TT>n</TT>: Wird diese Option angegeben, so werden Fehlermeldungen
    nicht nur mit ihrem Klartext, sondern auch mit ihren im Anhang <A
    HREF="#ref_ChapErrMess">A</A> genannten internen Nummern
    ausgegeben. Diese Option ist prim&auml;r f&uuml;r Shells und
    Entwicklungsumgebungen gedacht, denen mit diesen Nummern die
    Identifizierung von Fehlern erleichtert werden soll.</LI>
<LI> <TT>U</TT>: 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&szlig;buchstaben unterschieden, was normalerweise nicht der
    Fall ist.</LI>
<LI> <TT>P</TT>: weist AS an, den von Makroprozessor und bedingter
    Assemblierung bearbeiteten Quelltext in einer Datei abzulegen.
    Dieser Datei fehlen zus&auml;tzlich Leer- und reine
    Kommentarzeilen. Die Endung der Datei ist<TT> I</TT>.</LI>
<LI> <TT>M</TT>: mit diesem Schalter erzeugt AS eine Datei, in der die
    Definitionen der Makros aus der Quelldatei abgespeichert werden,
    die die<TT> EXPORT</TT>-Option verwenden. Diese neue Datei hat
    den gleichen Namen wie die Quelldatei, lediglich die Endung wird
    in<TT> MAC</TT> ge&auml;ndert.</LI>
<LI> <TT>G</TT>: 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&auml;&szlig;ig aktiviert (logisch, sonst bek&auml;me man
    ja auch gar kein Codefile).</LI>
<LI> <TT>r [n]</TT>: Warnungen ausgeben, falls Situationen eintreten, die
    einen weiteren Pass erfordern. Diese Information kann genutzt
    werden, um die Anzahl der Durchl&auml;ufe 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&szlig;t!!</LI>
<LI> <TT>Y</TT>: 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 <A HREF="#ref_ForwRefs">2.10</A>
    nachlesen.</LI>
<LI> <TT>cpu &lt;Name: &gt;</TT>: Hiermit kann man man den Zielprozessor
    vorgeben, f&uuml;r den AS Code erzeugen soll, wenn die Quelldatei
    keinen<TT> CPU</TT>-Befehl enth&auml;lt und es sich nicht um
    68008-Code handelt.</LI>
<LI> <TT>alias &lt;neu&gt;=&lt;alt&gt;</TT>:<BR>
    definiert den Prozessortyp<TT> &lt;neu&gt;</TT> als einen Alias
    f&uuml;r den Typen<TT> &lt;alt&gt;</TT>. Zu den Sinn und Zweck
    von Aliassen siehe Abschnitt <A
    HREF="#ref_SectAlias">2.13</A></LI>
<LI> <TT> gnuerrors</TT>: Meldungen &uuml;ber 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&uuml;r dieses Format ausgelegte
    Umgebungen, unterdr&uuml;ckt aber gleichzeitig die Anzeige der
    pr&auml;zisen Fehlerposition innerhalb Makror&uuml;mpfen!</LI>
</UL>
Sofern Schalter keine Argumente ben&ouml;tigen und ihre
Zusammenziehung keinen mehrbuchstabigen Schalter ergibt, k&ouml;nnen
mehrere Schalter auch auf einen Rutsch angegeben werden, wie z.B im
folgenden Beispiel:
<PRE>

 as test*.asm firstprog -cl /i c:\as\8051\include

</PRE>
Es werden alle Dateien TEST*.ASM sowie die Datei FIRSTPROG.ASM
assembliert, wobei f&uuml;r alle Dateien Listings auf der Konsole
ausgegeben und Sharefiles im C-Format erzeugt werden. Nach Includes
soll der Assembler zus&auml;tzlich im Verzeichnis  C:\AS\8051\INCLUDE
suchen.
<P>
Dieses Beispiel zeigt nebenbei, da&szlig; AS als Defaultendung
f&uuml;r Quelldateien<TT> ASM</TT> annimmt.
<P>
Etwas Vorsicht ist bei Schaltern angebracht, die ein optionales
Argument haben: Folgt auf einen solchen Schalter ohne Argument ein
Dateiname, so versucht AS, diesen als Argument zu verwerten, was
naturgem&auml;&szlig; schief geht:
<PRE>

 as -g test.asm

</PRE>
Die L&ouml;sung w&auml;re in diesem Fall, die<TT> -g</TT>-Option ans
Ende der Kommandozeile zu setzen oder ein explizites<TT>
MAP</TT>-Argument zu spezifizieren.
<P>
Neben der Angabe in der Kommandozeile k&ouml;nnen dauernd
ben&ouml;tigte Optionen in der Environment-Variablen ASCMD abgelegt
werden. Wer z.B. immer Listdateien haben m&ouml;chte und ein festes
Includeverzeichnis hat, kann sich mit dem Befehl
<PRE>

 set ASCMD=-L -i c:\as\8051\include

</PRE>
eine Menge Tipparbeit ersparen. Da die Environment-Optionen vor der
Kommandozeile abgearbeitet werden, k&ouml;nnen Optionen in der
Kommandozeile widersprechende im Environment &uuml;bersteuern.
<P>
Bei sehr langen Pfaden kann es jedoch auch in der ASCMD-Variablen eng
werden. F&uuml;r solche F&auml;lle kann auf eine sog.<I> Key</I>-
Datei ausgewichen werden, in der die Optionen genauso wie in der
Kommandozeile oder ASCMD-Variablen abgelegt werden k&ouml;nnen, nur
da&szlig; diese Datei mehrere Zeilen mit jeweils maximal 255 Zeichen
enthalten darf. Wichtig ist dabei, da&szlig; bei Optionen, die ein
Argument ben&ouml;tigen, sowohl Schalter als auch Argument in<B>
einer</B> Zeile stehen m&uuml;ssen. Der Name der Datei wird AS
dadurch mitgeteilt, da&szlig; er mit einem vorangestellten
Klammeraffen in der ASCMD-Variablen abgelegt wird, z.B.
<PRE>

 set ASCMD=@c:\as\as.key

</PRE>
Um Optionen in der ASCMD-Variablen (oder der Key-Datei) wieder
aufzuheben, kann die Option mit einem vorangestellten Pluszeichen
wieder aufgehoben werden. Soll in einem Einzelfall z.B. doch kein
Listing erzeugt werden, so kann es mit
<PRE>

 as +L &lt;Datei&gt;

</PRE>
wieder aufgehoben werden. Nat&uuml;rlich ist es nicht ganz logisch,
eine Option mit einem Pluszeichen zu negieren...UNIX soit qui mal y
pense.
<P>
Referenzen auf eine Key-Datei k&ouml;nnen nicht nur von der<TT>
ASCMD</TT>-Variablen aus erfolgen, sondern auch direkt von der
Kommandozeile aus, indem man analog zur<TT> ASCMD</TT>-Variablen dem
Dateinamen einen Klammeraffen voranstellt:
<PRE>

 as @&lt;Datei&gt; ....

</PRE>
Die in einem solchen Fall aus dem Key-

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -