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

📄 as_de.tex

📁 万能汇编工具
💻 TEX
📖 第 1 页 / 共 5 页
字号:
\begin{itemize}\item{Intel 8086, 80186, NEC V30\&V35 inkl. Koprozessor 8087}\end{itemize}Die Umschaltung des Codegenerators darf dabei auch mitten in der Dateierfolgen, und das beliebig oft!\parDer Grund f"ur diese Flexibilit"at ist, da"s AS eine Vorgeschichte hat,die auch in der Versionsnummer deutlich wird: AS ist als Erweiterung einesMakroassemblers f"ur die 68000er-Familie entstanden.  Auf besonderenWunsch habe ich den urspr"unglichen Assembler um die F"ahigkeit zur"Ubersetzung von 8051-Mnemonics erweitert, und auf dem Weg (Abstieg?!) vom68000 zum 8051 sind eine Reihe anderer fast nebenbei abgefallen...dierestlichen Prozessoren wurden allesamt auf Benutzeranfrage hin integriert. Zumindest beim prozessorunabh"angigen Kern kann man also getrost davonausgehen, da"s er gut ausgetestet und von offensichtlichen Bugs frei ist.Leider habe ich aber h"aufig mangels passender Hardware nicht die M"oglichkeit, einen neuen Codegenerator praktisch zu testen, so da"s beiNeuerungen "Uberraschungen nie ganz auszuschlie"sen sind.  Das inAbschnitt \ref{SectLicense} gesagte hat also schon seinen Grund...\parDiese Flexibilit"at bedingt ein etwas exotisches Codeformat, f"ur dessenBearbeitung ich einige Tools beigelegt habe.  Deren Beschreibung findetsich in Abschnitt \ref{ChapTools}.\parAS ist ein Makroassembler, d.h. dem Programmierer ist die M"oglichkeitgegeben, sich mittels Makros neue ,,Befehle'' zu definieren.  Zus"atzlichbeherrscht er die bedingte Assemblierung.  Labels in Makror"umpfen werdenautomatisch als lokal betrachtet.\parSymbole k"onnen f"ur den Assembler sowohl Integer-, String- als auchGleitkommawerte haben.  Diese werden --- wie Zwischergebnisse bei Formeln--- mit einer Breite von 32 Bit f"ur Integerwerte, 80/64 Bit f"urGleitkommawerte und 255 Zeichen f"ur Strings gespeichert.  F"ur eine Reihevon Mikrokontrollern besteht die M"oglichkeit, durch Segmentbildung dieSymbole bestimmten Klassen zuzuordnen.  Dem Assembler kann man auf dieseWeise die --- begrenzte --- M"oglichkeit geben, Zugriffe in falscheAdre"sr"aume zu erkennen.\parDer Assembler kennt keine expliziten Beschr"ankungen bzgl.Verschachtelungstiefe von Includefiles oder Makros, eine Grenze bildetlediglich die durch den Hauptspeicher beschr"ankte Rekursionstiefe.Ebenso gibt es keine Grenze f"ur die Symboll"ange, diese wird nur durchdie maximale Zeilenl"ange begrenzt.\parAb Version 1.38 ist AS ein Mehrpass-Assembler.  Dieser hochtrabende Begriffbedeutet nicht mehr, als das die Anzahl der Durchg"ange durch die Quelltextenicht mehr zwei sein mu"s.  Sind keine Vorw"artsreferenzen im Quellcodeenthalten, so kommt AS mit einem Durchgang aus.  Stellt sich dagegen im zweitenDurchgang heraus, da"s ein Befehl mit einer k"urzeren oder l"angeren Kodierungbenutzt werden mu"s, so wird ein dritter (vierter, f"unfter...) Durchgangeingelegt, um alle Symbolreferenzen richtig zu stellen.  Mehr steckt hinter demBegriff ,,Multipass'' nicht...er wird im weiteren Verlauf dieser Anleitungdeswegen auch nicht mehr auftauchen.\parNach soviel Lobhudelei ein dicker Wermutstropfen: AS erzeugt keinenlinkf"ahigen Code.  Eine Erweiterung um einen Linker w"are mit erheblichemAufwand verbunden und ist momentan nicht in Planung.\parWer einen Blick in die Quellen von AS werfen will, besorge sich einfachdie Unix-Version von AS, die als Quelltext zum Selber"ubersetzen kommt.Die Quellen sind mit Sicherheit nicht in einem Format, da"s dasVerst"andnis m"oglichst leicht macht - an vielen Stellen schaut nochder originale Pascal-Quellcode heraus, und ich teile einige h"aufigvertretene Ansichten "uber 'guten' C-Stil nicht...%%----------------------------------------------------------------------\section{Unterst"utzte Plattformen}Obwohl AS als ein reines DOS-Programm \marginpar{{\em DOS}} angefangenhat, stehen auch eine Reihe von Versionen zur Verf"ugung, die etwas mehrals den Real-Mode eines Intel-Prozessors ausnutzen k"onnen.  Diese sind inihrer Benutzung soweit als m"oglich kompatibel gehalten zur DOS-Version,es ergeben sich nat"urlich bisweilen Unterschiede in der Installation undder Einbindung in die jeweilige Betriebssystemumgebung.  Abschnitte indieser Anleitung, die nur f"ur eine bestimmte Version von AS gelten, sindmit einer entsprechenden Randbemerkung (an diesem Absatz f"ur dieDOS-Version) gekennzeichnet.  Im einzelnen existieren die folgenden,weiteren Versionen (die als getrennte Pakete distributiert werden):F"ur den Fall, da"s \marginpar{{\em DPMI}} man bei der "Ubersetzunggro"ser, komplexer Programme unter DOS Speicherplatzprobleme bekommt,existiert eine DOS-Version, die mittels eines DOS-Extenders im ProtectedMode abl"auft und so das komplette Extended Memory eines ATs nutzen kann. Die "Ubersetzung wird durch den Extender merklich langsamer, aber immerhinl"auft es dann noch...F"ur Freunde von IBM's Betriebssystem OS/2 \marginpar{{\em OS/2}} gibt eseine native OS/2-Version von AS.  Seit 1.41r8 ist diese nur eine volle32-bittige OS/2-Anwendung, was nat"urlich zur Folge hat, da"s OS/2 2.xund ein 80386-Prozessor jetzt zwingend erforderlich sind.Den reinen PC-Bereich verl"a"st man mit der \marginpar{{\em UNIX}}C-Version von AS, die so gehalten wurde, da"s sie auf einer m"oglichstgro"sen Zahl von UNIX-artigen Systemen (dazu z"ahlt aber auch OS/2 mit dememx-Compiler) ohne gro"sartige Verrenkungen "ubersetzbar ist.  ImGegensatz zu den vorherigen Versionen (die auf den auf Anfrageerh"altlichen Pascal-Sourcen basieren) wird die C-Version im Quellcodeausgeliefert, d.h. man mu"s sich mittels eines Compilers selbst dieBinaries erzeugen.  Dies ist aber (f"ur mich) der eindeutig einfachereWeg, als ein Dutzend Binaries f"ur Maschinen vorzukompilieren, auf die ichauch nicht immer Zugriff habe...Wer die bisherige \marginpar{{\em ???}} Aufz"ahlung liest, wirdfeststellen, da"s das meistverkaufte Betriebssystem der Welt aus Redmontin dieser Aufz"ahlung fehlt.  Wer mich pers"onlich kennt, wei"s, da"s ichWindows (egal, ob 3.X, 95 oder NT) {\em nicht} f"ur das Ei des Kolumbushalte.  Kurzgesagt, ich bin ein ,,Windows-Hasser''.  Auch wenn eine gro"seZahl an Leuten diese Einstellung f"ur "uberholt bis l"acherlich erachtenund mir jetzt vorhalten, ich w"urde hier einem gro"sen Teil potentiellerAnwender AS vorenthalten, so werden sie sich doch damit abfinden m"ussen:Ich treibe die Entwicklung an AS prim"ar weiter, weil sie mir {\em Spa"s}macht; AS ist ein nicht-kommerzielles Projekt und ich nehme mir deswegendie Freiheit, nicht auf potentielle Marktanteile zu schielen.  Ich suchemir die Plattformen aus, auf denen das Programmieren {\em mir} Spa"smacht, und Programmieren unter Windows macht mir definitiv keinen Spa"s! Ich habe "ubrigens durchaus schon einmal Windows-Programme schreibenm"ussen, es ist also nicht so, da"s ich hier ohne Erfahrung etwasdaherreden w"urde.  Sofern irgendjemand AS in diese Richtung portierenwill, werde ich mich ihm nicht in den Weg stellen, "uber die Sourcenhinaus hat er aber nicht viel Hilfe von mir zu erwarten (und mu"s sichselber mit den Anfragen der Qualit"at herumschlagen, warum AS denn jetztnicht mehr l"auft, nachdem man den Brummi-CAD 18.53-Eintrag in derRegistry von Gro"s- in Kleinbuchstaben ge"andert hat...).%%===========================================================================\cleardoublepage\chapter{Benutzung des Assemblers}\begin{quote}\begin{raggedright}{\itScotty: Captain, we din\verb!'! can reference it! \\Kirk:   Analysis, Mr. Spock? \\Spock:  Captain, it doesn\verb!'!t appear in the symbol table. \\Kirk:   Then it\verb!'!s of external origin? \\Spock:  Affirmative. \\Kirk:   Mr. Sulu, go to pass two. \\Sulu:   Aye aye, sir, going to pass two. \\}\end{raggedright}\end{quote}%%---------------------------------------------------------------------------\section{Hardware-Anforderungen}Je nach Version von AS variieren die Hardware-Anforderungen deutlich:Die DOS-Version \marginpar{{\em DOS}} l"auft prinzipiell auf allenIBM-kompatiblen PCs, angefangen vom PC/XT mit vierkommawenig Megaherz bishin zum Pentium.  Wie bei vielen anderen Programmen aber auch, steigt derLustgewinn mit der Hardware-Ausstattung.  So d"urfte ein XT-Benutzer ohneFestplatte erhebliche Probleme haben, die "uber 500 Kbyte gro"seOverlay-Datei von AS auf einer Diskette unterzubringen...eine Festplattesollte der PC also schon haben, allein um vern"unftige Ladezeiten zuerreichen.  Im Hauptspeicherbedarf ist AS recht gen"ugsam: Das Programmselber belegt knapp 300 Kbyte Hauptspeicher, AS sollte also ab einerHauptspeichergr"o"se von 512 Kbyte ausf"uhrbar sein.Die Version von AS f"ur das \marginpar{{\em DPMI}}DOS-Protected-Mode-Interface (DPMI) ben"otigt zum Ablaufen mindestenseinen 80286-Prozessor und 1 Mbyte freies extended memory.  Daher stellen 2Mbyte Hauptspeicher das absolute Minimum dar, wenn man im XMS sonst keineanderen Spielereien (Platten-Cache, RAM-Disk, hochgeladenes DOS)installiert hat, sonst entsprechend mehr.  Falls man die DPMI-Version ineiner DOS-Box von OS/2 laufen l"a"st, so sollte DPMI auch in denDOS-Einstellungen der Box erlaubt sein (Einstellung \tty{An} oder\tty{Auto}) und der Box eine entsprechende Menge von XMS-Speicherzugeordnet sein.  Die virtuelle Speicherverwaltung von OS/2 sorgt hier"ubrigens daf"ur, da"s man sich keine Gedanken machen mu"s, ob dereingestellte Speicher auch real verf"ugbar ist.Die Hardware-Anforderungen der \marginpar{{\em OS/2}} OS/2-Version ergeben sichweitestgehend durch die des darunterliegenden Betriebssytemes, d.h.mindestens ein 80386SX-Prozessor, 8 Mbyte RAM (bzw. 4 ohne grafischeBenutzeroberfl"ache) sowie ca 100..150 Mbyte Platz auf der Festplatte.  DaAS2 nur eine 16-Bit-Applikation ist, sollte er theoretisch auch auf"alteren OS/2-Versionen (und damit 80286-Prozessoren) lauff"ahig sein;ausprobieren konnte ich dies aber nicht.Die C-Version \marginpar{{\em UNIX}} von AS wird im Quellcode ausgeliefertund erfordert damit ein Unix- oder OS/2-System mit einem C-Compiler.Der Compiler mu"s dem ANSI-Standard gen"ugen (GNU-C erf"ullt dieseBedingung zum Beispiel).  Ob Ihr UNIX-System bereits getestet und dien"otigen Definitionen vorgenommen wurden, k"onnen Sie der \tty{README}-Dateientnehmen.  Als zur Kompilation ben"otigten Plattenplatz sollten Sieca. 15 Mbyte veranschlagen; dieser Wert (und der nach der "Ubersetzungnoch ben"otigte Platz f"ur die "ubersetzten Programme) variiertallerdings stark von System zu System, so da"s man diesen Wert nur alsRichtschnur betrachten sollte.%%---------------------------------------------------------------------------\section{Lieferumfang}Prinzipiell erh"alt man AS in einer von zwei Formen: Als {\emBin"ardistribution} oder {\em Quellcodedistribution}.  Im Falle einerBin"ardistribution bekommt man AS mit den zugeh"origen Dienstprogrammenund Hilfsdateien fertig "ubersetzt, so da"s man nach dem Auspacken desArchivs an die gew"unschte Stelle direkt loslegen kann. Bin"ardistributionen werden f"ur verbreitete Plattformen gemacht, beidenen die Mehrzahl der Benutzer keinen Compiler hat oder die "Ubersetzungtrickreich ist (im Moment sind dies DOS und OS/2).  EineQuellcodedistribution enth"alt im Gegensatz den kompletten Satz anC-Quellen, um AS zu generieren; es ist letzten Endes ein Schnappschu"sdes Quellenbaumes, an dem ich AS weiterentwickele.  Die Generierung von ASaus dem Quellcode und dessen Struktur ist n"aher in Anhang\ref{ChapSource} beschrieben, weshalb an dieser Stelle nur auf denUmfang und die Installation einer Bin"ardistribution beschrieben wird:Das Archiv des Lieferumfangs gliedert sich in einige Unterverzeichnisse,so da"s man nach dem Auspacken sofort einen Verzeichnisbaum erh"alt.  DieVerzeichnisse enthalten im einzelnen:\begin{itemize}\item{{\tt BIN}: ausf"uhrbare Programme, Text-Resourcen;}\item{{\tt INCLUDE}: Include-Dateien f"ur Assemblerprogramme, z.B.      Registerdefinitionen oder Standardmakros;}\item{{\tt MAN}: Kurzreferenzen f"ur die Programme im Unix-Man-Format;}\item{{\tt DOC}: diese Dokumentation in verschiedenen Formaten;}\item{{\tt LIB}: vorgesehen f"ur Initialisierungsdateien.}\end{itemize}Eine Auflistung der Dateien, die in jeder Bin"ardistribution enthaltensind, findet sich in den Tabellen \ref{TabCommonPackageList1} bis\ref{TabCommonPackageList3}.  Falls eine der in diesen (oder denfolgenden) Tabellen aufgef"uhrten Dateien fehlt, hat jemand (imZweifelsfalle ich) beim Kopieren geschlafen...\begin{table*}[htp]\begin{center}\begin{tabular}{|l|l|}\hlineDatei             & Funktion \\\hline\hline{\bf Verzeichnis BIN} & \\\hlineAS.EXE            & Programmdatei Assembler \\PLIST.EXE         & listet Inhalt von Codedateien auf \\PBIND.EXE         & kopiert Codedateien zusammen \\P2HEX.EXE         & wandelt Code- in Hexdateien um \\P2BIN.EXE         & wandelt Code- in Bin"ardateien um \\AS.MSG            & Textresourcen zu AS \\PLIST.MSG         & Textresourcen zu PLIST \\PBIND.MSG         & Textresourcen zu PBIND \\P2HEX.MSG         & Textresourcen zu P2HEX \\P2BIN.MSG         & Textresourcen zu P2BIN \\TOOLS.MSG         & gemeinsame Textresourcen zu den Tools \\CMDARG.MSG        & gemeinsame Textresourcen zu allen Programmen \\IOERRS.MSG        & \\\hline\hline{\bf Verzeichnis DOC} & \\\hlineAS\_DE.DOC        & deutsche Dokumentation, ASCII-Format \\AS\_DE.HTML       & deutsche Dokumentation, HTML-Format \\AS\_DE.TEX        & deutsche Dokumentation, LaTeX-Format \\AS\_EN.DOC        & englische Dokumentation, ASCII-Format \\AS\_EN.HTML       & englische Dokumentation, HTML-Format \\AS\_EN.TEX        & englische Dokumentation, LaTeX-Format \\\hline\hline{\bf Verzeichnis INCLUDE} & \\\hlineBITFUNCS.INC      & Funktionen zur Bitmanipulation \\CTYPE.INC         & Funktionen zur Klassifizierung von \\                  & Zeichen \\80C50X.INC        & Registeradressen SAB C50x \\80C552.INC        & Registeradressen 80C552 \\H8\_3048.INC      & Registeradressen H8/3048 \\REG166.INC        & Adressen \& Befehlsmakros 80C166/167 \\REG251.INC        & Adressen \& Bits 80C251 \\REG29K.INC        & Peripherieadressen AMD 2924x \\REG53X.INC        & Registeradressen H8/53x \\REG683XX.INC      & Registeradressen 68332/68340/68360 \\REG7000.INC       & Registeradressen TMS70Cxx \\REG78K0.INC       & Registeradressen 78K0 \\REG96.INC         & Registeradressen MCS-96 \\REGACE.INC        & Registeradressen ACE \\\hline\end{tabular}\end{center}\caption{Standardumfang einer Bin"ardistribution - Teil 1         \label{TabCommonPackageList1}}\end{table*}\begin{table*}[htp]\begin{center}\begin{tabular}{|l|l|}\hlineDatei             & Funktion \\\hline

⌨️ 快捷键说明

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