ASM86FAQ - Inhalt
BAW0001 Was ist Maschinensprache?
BAW0002 Was ist Assembler? BAW0003 Warum Assembler? BAW0004 Zahlensysteme BAW0005 Datengrößen BAW0006 Datentypen BAW0007 CPU-Registersatz BAW0008 CPU-Befehlsformat BAW0009 CPU-Befehlssatz BAW0010 MMX-Befehlssatz & BAW0011 FPU-Befehlssatz BAW0012 Real Mode & BAW0013 Protected Mode ? BAW0014 Virtual 86 (V86) Mode BAW0015 RM/Flat4G Mode ? BAW0016 Interrupts BAW0017 Exceptions BAW0018 Hochsprachen-Schnittstellen ! BAW0019 VGA-Registersatz BAW0020 Mode X (Tweaked Mode, Basis: Videomodus 13H) BAW0021 VBE 2.0 (VESA BIOS Extension) BAW0022 LFBM (Linear Frame Buffer Model) + BAW0023 CAS (Configuration Address Space, PCI)
STR0001 MCB-Struktur (Memory Control Block [DOS]) STR0002 PSP-Struktur (Program Segment Prefix [DOS]) & STR0003 FCB-Struktur (File Control Block [DOS]) & STR0004 DDSSCB-Struktur (DOS Data Segment Subsegment Control Block [DOS]) & STR0005 SFT-Struktur (System File Table [DOS]) & STR0006 DEB-Struktur (DOS Environment Block [DOS])
FRM0001 COM-Format (Programm) FRM0002 EXE-Format [MZ] (Programm) ? FRM0003 EXE-Format [NE] (Programm) ? FRM0004 EXE-Format [LE] (Programm) ? FRM0005 PCX-Format (Grafik) & FRM0006 MOD-Format (Musik)
& ALG0001 DWord -> DezStr (Zahlenkonvertierung) & ALG0002 DWord -> HexStr (Zahlenkonvertierung) ALG0003 DWord -> BinStr (Zahlenkonvertierung) & ALG0004 DezStr -> DWord (Zahlenkonvertierung) & ALG0005 HexStr -> DWord (Zahlenkonvertierung) ALG0006 BinStr -> DWord (Zahlenkonvertierung) & ALG0007 InsertionSort (Sortierung) & ALG0008 BubbleSort (Sortierung) & ALG0009 QuickSort (Sortierung) & ALG0010 MergeSort (Sortierung) & ALG0011 HeapSort (Sortierung) & ALG0012 ShellSort (Sortierung) & ALG0013 BucketSort (Sortierung) ALG0014 Boyer-Moore (Suche) & ALG0015 Lempel-Ziv [LZ] (Komprimierung) & ALG0016 Lempel-Ziv-Welch [LZW] (Komprimierung) & ALG0017 Bresenham Line (Grafik) ALG0018 Bresenham Circle (Grafik) ? ALG0019 CRC (Prüfsummenbildung) ? ALG0020 CRC32 (Prüfsummenbildung) & ALG0021 Huffman (Komprimierung)
LSG0001 Wie erfahre ich, welche CPU vorhanden ist? LSG0002 Wie erfahre ich, welche FPU vorhanden ist? LSG0003 Wo liegen die Kommandozeilenparameter meines Programmes? LSG0004 Wie komme ich an das Startverzeichnis meines Programmes? LSG0005 Grundgerüst für RM/Flat4G und XMS LSG0006 Grundgerüst für RM/Flat4G und RAW LSG0007 Wie kann ich in allen Modes (RM, VM, PM) auf 386+ CPUs prüfen? LSG0008 Wie implementiere ich eine Random-Funktion in Assembler? LSG0009 Wie ermittle ich den Typ der aktiven Grafikkarte? LSG0010 Wie initialisiere ich einen Mode X (320x???, 360x???) [Lang]? LSG0011 Wie initialisiere ich Mode X 320x200 (Kurzversion)? LSG0012 Wie initialisiere ich Mode X 320x240 (Kurzversion)? LSG0013 Wie initialisiere ich Mode X 320x400 (Kurzversion)? LSG0014 Wie initialisiere ich Mode X 320x480 (Kurzversion)? LSG0015 Wie initialisiere ich Mode X 360x200 (Kurzversion)? LSG0016 Wie initialisiere ich Mode X 360x240 (Kurzversion)? LSG0017 Wie initialisiere ich Mode X 360x400 (Kurzversion)? LSG0018 Wie initialisiere ich Mode X 360x480 (Kurzversion)? + LSG0019 Wie stelle ich fest, ob PCI-Bus #0 CASAM1 unterstützt? + LSG0020 Wie stelle ich fest, ob PCI-Bus #0 CASAM2 unterstützt?
OPT0001 Grundsätzliches zur Optimierung OPT0002 Code Alignment OPT0003 Data Alignment OPT0004 Register-Optimierung OPT0005 Unrolled Loops OPT0006 Cache-Optimierung (alle CPUs) OPT0007 386er-Optimierung OPT0008 Diverse Optimierungen ? OPT0009 Pairing
& TSR0001 Grundsätzliches zur TSR-Programmierung
SEC0001 Anti-Debugger-Tips SEC0002 Verschlüsseln von Daten ? SEC0003 Key Generation
QLL0001 Allgemeine Systemprogrammierung QLL0002 Allgemeine Algorithmen QLL0003 Allgemeine Grafikprogrammierung QLL0004 Assemblerpakete QLL0005 Programmieren in Assembler
XXXXXXX Abkürzungen
--- LEGENDE ----------------------------------------------------------------
ALG Algorithmen BAW Basiswissen FRM Dateiformate LSG Lösungen OPT Optimierung QLL Quellen SEC Security STR Datenstrukturen TSR TSR-Programmierung
? Topic offen & Topic in Arbeit (extern, noch nicht integriert) * Topic in Arbeit (intern, bereits teilweise integriert) + Topic komplett neu seit letzter FAQ ! Topic erweitert/korrigiert seit letzter FAQ
--- FAQ-spezifisches -------------------------------------------------------
Die FAQ gliedert sich in neun Kategorien:
BAW - Basiswissen
Wissenswertes, Übersichten (Befehlsätze der CPU und FPU, Registersätze der CPU (inkl. MMX), VGA, u.ä.).
STR - Datenstrukturen
Dokumentation verschiedener OS-Datenstrukturen (MCB, PSP, FCB, usw.).
FRM - Dateiformate
Dokumentation häufig verwendeter Dateiformate (EXE, PCX, MOD, usw.).
ALG - Algorithmen
Erläuterung verschiedener Standardalgorithmen (Quicksort u.ä.). Sinn ist Herleitung, Arbeitsschritte und Ziel eines Algorithmus verständlich zu machen.
LSG - Lösungen
Quell-/Pseudocodes und/oder Erklärungen zur Lösung spezifischer Problem- stellungen.
OPT - Optimierung
Tips und Tricks zur Optimierung von Quellcodes.
TSR - TSR-Programmierung
Wissenswertes zum Dauerthema TSR-Programmierung.
SEC - Security
Programm- und Datenschutz, Shareware Keysysteme.
QLL - Quellen
In diesem Teil befinden sich Verweise auf nützliche Informationsquellen außerhalb der FAQ. Dabei handelt es sich in der Regel um FTP/WWW-Server, Dateien, Bücher, einschlägige Fachzeitschriften usw.
XXX - Glossar
Beschreibungen häufig anzutreffender Abkürzungen.
Jedes Topic ist mit dem entsprechenden Gruppenkürzel und einer fortlaufenden Nummer im Inhaltsverzeichnis aufgeführt (LSG0001). Wird die FAQ in einen Editor mit kontextsensitiver Suchfunktion geladen, ist so das Auffinden des entsprechenden Topics wesentlich bequemer.
In der Spalte vor der Topicnummer kann sich zudem eines der Zeichen ?, &, *, + oder ! befinden:
? bedeutet, daß ein bestimmtes Topic angefordert wurde, es sich aber bisher kein Autor finden liess, der in der Lage wäre und die Zeit hätte, das Topic in Angriff zu nehmen. Interessenten mögen sich bitte per NM (notfalls auch per Echomail in die ASM86.GER) an den FAQ-Keeper wenden (Adresse s. unten).
& bedeutet, daß am entsprechenden Topic bereits gearbeitet wird, die Arbeit aber weder abgeschlossen ist, noch das Teile des Topics schon in der FAQ in- tegriert wären.
* bedeutet, daß bereits Teile eines Topics in die FAQ integriert wurden, die Arbeit am Topic aber erst mit einer der nächsten Releases vollständig abge- schlossen sein wird.
+ bedeutet, daß dieses Topic seit der letzten FAQ-Version komplett neu hin- zugekommen ist.
! bedeutet, daß der Inhalt dieses Topics seit der letzten FAQ-Version über- arbeitet, erweitert, oder in sonstiger Form inhaltlich verändert wurde.
Neue Lösungsansätze, Verbesserungsvorschläge usw. für bereits bestehende Topics bitte an den jeweiligen Autor, oder an den FAQ-Keeper.
FAQ-Keeper:
Jürgen Thelen
Fido: 2:2450/55.5 Internet: josh_thelen@msn.com