📄 as_de.html
字号:
<LI> Die angegebenen Schalter wirken auf alle angegebenen Quelldateien.
Sollen mehrere Quelldateien mit unterschiedlich gesetzten
Schaltern assembliert werden, so muß dies in getrennten
Läufen erfolgen.</LI>
<LI> Es können in einem Durchgang mehrere Dateien assembliert
werden. Um der Sache die Krone aufzusetzen, dürfen die
Dateiangaben Jokerzeichen enthalten.</LI>
</UL>
Schalterparameter erkennt AS daran, daß sie durch einen
Schrä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ätte, wü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ß AS bei ihnen beliebige
Groß-und Kleinschreibungen akzeptiert, während
einbuchstabige Schalter je nach Groß- 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ührt werden müssen, landen im Gegensatz
zur nächsten Option die Listings aller Durchgänge auf
der Ausgabe!</LI>
<LI> <TT>L</TT>: Assemblerlisting auf Datei schreiben. Die Listdatei
erhä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ätzlichen Argument legt einen
anderen Pfad bzw. Namen fü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ü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öscht den Namen aus der Liste;
Negation ohne Namensangabe löscht die komplette Liste.</LI>
<LI> <TT>SHAREOUT</TT>:dito, nur fü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ätzlich
eine Datei, die Debug-Informationen für dieses Programm
enthä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ö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ähltem Format. Wird keine explizite Formatangabe
gemacht, wird das MAP-Format gewä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ücken;</LI>
<LI> <TT>E [Datei]</TT>: Die von AS erzeugten Fehlermeldungen und
Warnungen in eine Datei umleiten. Anstatt einer Datei kö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ückt alle Meldungen von AS
mit Ausnahme von Fehlermeldungen und vom Programm selber
erzeugten Ausgaben. Die Assemblierzeit kann dadurch
geringfügig reduziert werden, und beim Aufruf aus einer
Shell heraus kann man sich eine Umleitung ersparen. Der Nachteil
ist, daß 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ßbuchstaben ausgeben. Diese Option ist in erster Linie
eine Frage des persönlichen Geschmacks.</LI>
<LI> <TT>i <Pfadliste></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ü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ötigt erhebliche zusätzliche Speicher-
und Rechenleistung, im Normalbetrieb sollte sie daher
abgeschaltet sein. Da AS aber unabhängig vom eingeschalteten
Listing mit dieser Option auf überlappende Speicherbelegung
prüft, hat sie auch unabhä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ährend der Assemblierung
zusä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ückungen angedeutet.</LI>
<LI> <TT>I</TT>: Analog zur Sektionsliste eine Liste aller bearbeiteten
Include-Dateien ausgeben.</LI>
<LI> <TT>t <Maske></TT>: Mit diesem Schalter lassen sich einzelne
Komponenten des standardmäßig ausgegebenen
Assemblerlistings ein-und ausblenden. Welcher Teil dabei welchem
Bit zugeordnet ist, ist im übernächsten Abschnitt, der
genauer auf das Format des Assemblerlistings eingeht, nachgelesen
werden.</LI>
<LI> <TT>D <Symbolliste></TT>: Symbole definieren. Die hinter
dieser Option angegebenen, durch Kommas getrennten Symbole werden
in der globalen Symboltabelle vor Beginn der Assemblierung
abgelegt. Defaultmäßig werden diese Symbole als ganze
Zahlen mit dem Wert TRUE abgelegt, mit einem nachgestellten
Gleichheitszeichen kann aber auch eine andere Belegung
gewä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önnen so
per Kommandozeile aus einer Quelldatei unterschiedliche
Programmversionen erzeugt werden.<B> ACHTUNG!</B> Wenn
case-sensitiv gearbeitet werden soll, muß dies in der
Kommandozeile<EM> vor</EM> Symboldefinitionen angegeben werden,
sonst werden Symbolnamen schon an dieser Stelle in
Groß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überlauf
abstürzt. Eventuell kann diese Option die
Arbeitsgeschwindigkeit des Assemblers erhöhen, dies
hängt jedoch von den Quellen ab.</LI>
<LI> <TT>x</TT>: Legt die Ausführlichkeitsstufe von Fehlermeldungen
fest. Jedesmal, wenn diese Option angegeben wird, wird die Stufe
um eins erhöht oder gesenkt. Wä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önnen,
steht in Anhang <A HREF="#ref_ChapErrMess">A</A> mit der Liste
aller Fehlermeldungen. Auf Stufe 2 (Maximum) wird zusä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är fü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ß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ä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ä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äßig aktiviert (logisch, sonst bekä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ä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ß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 <Name: ></TT>: Hiermit kann man man den Zielprozessor
vorgeben, für den AS Code erzeugen soll, wenn die Quelldatei
keinen<TT> CPU</TT>-Befehl enthält und es sich nicht um
68008-Code handelt.</LI>
<LI> <TT>alias <neu>=<alt></TT>:<BR>
definiert den Prozessortyp<TT> <neu></TT> als einen Alias
für den Typen<TT> <alt></TT>. Zu den Sinn und Zweck
von Aliassen siehe Abschnitt <A
HREF="#ref_SectAlias">2.13</A></LI>
<LI> <TT> gnuerrors</TT>: Meldungen ü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ür dieses Format ausgelegte
Umgebungen, unterdrückt aber gleichzeitig die Anzeige der
präzisen Fehlerposition innerhalb Makrorümpfen!</LI>
</UL>
Sofern Schalter keine Argumente benötigen und ihre
Zusammenziehung keinen mehrbuchstabigen Schalter ergibt, kö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ür alle Dateien Listings auf der Konsole
ausgegeben und Sharefiles im C-Format erzeugt werden. Nach Includes
soll der Assembler zusätzlich im Verzeichnis C:\AS\8051\INCLUDE
suchen.
<P>
Dieses Beispiel zeigt nebenbei, daß AS als Defaultendung
fü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äß schief geht:
<PRE>
as -g test.asm
</PRE>
Die Lösung wä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önnen dauernd
benötigte Optionen in der Environment-Variablen ASCMD abgelegt
werden. Wer z.B. immer Listdateien haben mö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önnen Optionen in der
Kommandozeile widersprechende im Environment übersteuern.
<P>
Bei sehr langen Pfaden kann es jedoch auch in der ASCMD-Variablen eng
werden. Für solche Fä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önnen, nur
daß diese Datei mehrere Zeilen mit jeweils maximal 255 Zeichen
enthalten darf. Wichtig ist dabei, daß bei Optionen, die ein
Argument benötigen, sowohl Schalter als auch Argument in<B>
einer</B> Zeile stehen müssen. Der Name der Datei wird AS
dadurch mitgeteilt, daß 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 <Datei>
</PRE>
wieder aufgehoben werden. Natü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ö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 @<Datei> ....
</PRE>
Die in einem solchen Fall aus dem Key-
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -