ebook img

Das Assembler-Buch PDF

998 Pages·1999·4.179 MB·German
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Das Assembler-Buch

;-_=_Scrolldown to the Underground_=_-; Das Assemblerbuch http://kickme.to/tiger/ Das Assembler-Buch Professionelle Programmierung Trutz Eyke Podschun Das Assembler-Buch Grundlagen und Hochsprachenoptimierung 4., aktualisierte Auflage An imprint of Addison Wesley Longman, Inc. Bonn • Reading, Massachusetts • Menlo Park, California New York • Harlow, England • Don Mills, Ontario Sydney • Mexico City • Madrid • Amsterdam Die Deutsche Bibliothek – CIP-Einheitsaufnahme Das Assembler-Buch ; Grundlagen und Hochsprachenoptimierung [Medienkombination] / Trutz Eyke Podschun. – Bonn : Addison-Wesley-Longman, 1999 (Professionelle Programmierung) ISBN 3-8273-1513-1 Buch. – 4., aktualisierte Auflage – 1999 Gb. CD-ROM. – 4., aktualisierte Auflage – 1999 © 1999 Addison Wesley Longman Verlag GmbH, 4. Auflage 1999 Lektorat: Susanne Spitzer und Friederike Daenecke Satz: Reemers EDV-Satz, Krefeld. Gesetzt aus der Palatino 9,5 Punkt Belichtung, Druck und Bindung: Kösel GmbH, Kempten Produktion: TYPisch Müller, München Umschlaggestaltung: vierviertel gestaltung, Köln Das verwendete Papier ist aus chlorfrei gebleichten Rohstoffen hergestellt und alterungsbeständig. Die Produktion erfolgt mit Hilfe umweltschonender Technologien und unter strengsten Auflagen in einem geschlossenen Wasserkreislauf unter Wiederverwertung unbedruckter, zurückgeführter Papiere. Text, Abbildungen und Programme wurden mit größter Sorgfalt erarbeitet. Verlag, Übersetzer und Autoren können jedoch für eventuell verbliebene fehlerhafte Angaben und deren Folgen weder eine juri- stische Verantwortung noch irgendeine Haftung übernehmen. Die vorliegende Publikation ist urheberrechtlich geschützt. Alle Rechte vorbehalten. Kein Teil dieses Buches darf ohne schriftliche Genehmigung des Verlages in irgendeiner Form durch Fotokopie, Mikro- film oder andere Verfahren reproduziert oder in eine für Maschinen, insbesondere Datenverarbeitungs- anlagen, verwendbare Sprache übertragen werden. Auch die Rechte der Wiedergabe durch Vortrag, Funk und Fernsehen sind vorbehalten. Die in diesem Buch erwähnten Software- und Hardwarebezeichnungen sind in den meisten Fällen auch eingetragene Markenzeichen und unterliegen als solche den gesetzlichen Bestimmungen. Inhalt Vorwort zur vierten Auflage xiii Vorwort zur dritten Auflage xiv Vorwort zur zweiten Auflage xvi Vorwort xvii Einleitung xxi Teil 1 Grundlagen 1 1 Die Register des 8086 3 1.1 Der Adreßraum des 8086 6 1.2 Ports 12 2 Der Befehlssatz des 8086 16 2.1 Ein- und Ausgabeoperationen 18 2.2 Vergleichsoperationen 25 2.3 Sprungbefehle 32 2.4 Flags 40 2.5 Bitschiebeoperationen 41 2.6 Logische Operationen 46 2.7 Arithmetische Operationen 50 2.8 Stringoperationen 64 2.9 Korrekturoperationen 71 2.10 Sonstige Operationen 78 3 Die Register des 8087 80 4 Der Befehlssatz des 8087 87 4.1 Arithmetische Operationen mit Realzahlen 89 4.2 Weitere arithmetische Operationen mit Realzahlen 98 4.3 Arithmetische Operationen mit Integerzahlen 105 4.4 Weitere Operationen mit Zahlen 108 4.5 Sonderfall: BCDs 108 4.6 Rechenstackmanipulationen 109 4.7 Allgemeine Coprozessorbefehle 111 vi Inhalt 5 Zusammenarbeit zwischen 8086 und 8087 115 6 ˜nderungen beim 80186/80188 120 7 Der 80187 122 8 ˜nderungen beim 80286/80287 123 9 Zusammenarbeit zwischen 80286 und 80287 127 10 ˜nderungen beim 80386/80387 128 11 Der Adre(cid:223)raum des 80386 140 12 ˜nderungen beim 80486 143 13 Zusammenarbeit zwischen dem 80486 und der Floating-Point-Unit 146 14 ˜nderungen beim Pentium 146 15 ˜nderungen beim Pentium Pro 148 16 ˜nderungen beim Pentium II 150 17 Die MMX-Technologie 151 17.1 Neue MMX-Datenformate 152 17.2 Die »neuen« MMX-Register 153 17.3 »Herumwickeln« und »Sättigen« 155 17.4 Neue MMX-Befehle 157 17.5 Beispiele für die Nutzung von MMX-Befehlen 170 17.6 MMX und die Floating-Point Unit 173 18 Windows 9x und Windows NT 176 18.1 Die Berechnung von Adressen Teil 1 – Theorie: Von der effektiven zur physikalischen Adresse 179 18.1.1 Die logische Adresse 179 18.1.2 Segmente und ihre Deskriptoren 180 18.1.3 Die globale Deskriptortabelle und ihr Register 184 18.1.4 Segmentselektoren und ihre Register 186 18.1.5 Lokale Deskriptortabellen und deren Register 188 18.1.6 Die virtuelle Adresse 189 18.1.7 Die Page – Abbildung der kleinsten Einheit des segmentierten physikalischen Speichers 190 Inhalt vii 18.1.8 Die Page Table 194 18.1.9 Das Page Table Directory und sein Register 196 18.1.10 Die physikalische Adresse 196 18.1.11 Der Paging-Mechanismus – ein Beispiel 197 18.2 Die Berechnung von Adressen Teil 2 – Praxis: Adressen aus der Sicht des Assemblerprogrammierers 202 18.2.1 Präfix und OpCode 202 18.2.2 Das MOD-Byte in 16-Bit-Umgebungen 207 18.2.3 Die MOD- und SIB-Bytes in 32-Bit-Umgebungen 208 18.3 Die Berechnung von Adressen Teil 3 – praktische Beispiele 210 19 Multitasking 214 19.1.1 Der Task 215 19.1.2 Der Task-State 216 19.1.3 Das Task-State-Segment 217 19.1.4 Der Task-State-Segmentdeskriptor 219 19.1.5 Das Task-Register des Prozessors 220 19.1.6 Task Switches 220 19.2 Gates 223 19.2.1 Tore zu fremdem Terrain 223 19.2.2 Gate-Deskriptoren 224 19.2.3 Das rechte Tor zur rechten Zeit 226 19.3 Interrupts und Exceptions 228 19.3.1 Interrupts 229 19.3.2 Exceptions 230 19.3.3 Die Interrupt-Deskriptortabelle (IDT) 230 19.3.4 Das Interrupt-Deskriptortabellenregister des Prozessors 232 19.3.5 Nutzung von Interrupt und Exceptions 232 19.4 Schutzmechanismen 233 19.4.1 Die Prüfung der Segmentgrößen 233 19.4.2 Die Prüfung der Segmenttypen 235 19.4.3 Zugriffsprivilegien 235 19.4.4 Schutzmechanismen auf Page-Ebene 240 19.4.5 Kommunikation mit der Peripherie: Die Ports 241 19.4.6 Weitere Schutzmechanismen 245 Teil 2 Arbeiten mit dem Assembler 247 20 Hallo, Welt! 249 20.1 Die Segmente eines Assemblerprogramms 252 20.2 Das erste Programm 263 20.3 Eine nicht ganz unwichtige Assembleranweisung 265 20.4 Nachtrag 267 viii Inhalt 21 Hallo, Coprozessor 270 21.1 Unser zweites Programm 270 21.2 Das eigentliche Programm 273 22 Wie hei(cid:223)t Du, Coprozessor? 279 22.1 Die Strategie 279 22.2 Ein Stapel Worte 281 22.3 Bürokratie! 283 22.4 Unterprogramme 285 22.5 Ein weiterer Stapel Worte 286 22.6 Coprozessorunterscheidung 293 22.7 Function or not function – that is a decision! 298 22.8 Kombination der Routinen zum Programm 307 22.9 Die Geschwindigkeit des Coprozessors 311 23 Makros 318 24 Namen f(cid:252)r Werte: EQU 325 25 Assembler und Hochsprachen 327 25.1 Sind Sie im Bilde? Aber fallen Sie bloß nicht aus dem Rahmen! 329 25.2 Parameter für Routinen 334 26 Assembler und Pascal 336 26.1 Parameter in Pascal 336 26.2 Funktionswerte in Pascal 345 26.3 Einbindung von Assemblermodulen in Pascal-Programme 350 26.4 Wie arbeitet der Compiler? 357 27 Assembler und C 359 27.1 Parameter in C 359 27.2 Funktionswerte in C 366 27.3 Parameter und Funktionen in C, Teil 2 369 27.4 Einbinden von Assemblermodulen in C-Programme 374 27.5 Wie arbeitet der Compiler? 380 28 Assembler und Delphi 381 29 Der integrierte Assembler 398 30 Optimierungen beim Programmieren 410 30.1 »Optimierte« Compiler oder »optimiertes Denken«? 410 30.2 Optimieren mit dem Assembler 417 30.3 Noch ein Beispiel 427 Inhalt ix 30.4 Spezielle Optimierungen 431 30.5 Optimierungen bei 32-Bit-Betriebssystemen und -Prozessoren 433 30.6 Generelle Tips zum Optimieren 435 31 8087-Emulation 437 32 Strukturen 444 32.1 STRUC 444 32.2 UNION 448 32.3 Verschachtelte Strukturen 450 32.4 Andere Strukturen 451 32.5 Assembler und OOP 451 33 Vereinfachungen und Erg(cid:228)nzungen 451 33.1 Speichermodelle 451 33.2 Vereinfachte Segmentanweisungen 453 33.3 Sprachenvereinbarung 455 33.4 Argumentanweisungen 456 33.5 Lokale Variablen 458 33.6 Register retten 459 33.7 Automatische Sprungzielanpassung 461 33.8 Lokale Sprungziele 462 33.9 IDEAL, INVOKE usw. 465 34 Tips, Tricks und Anmerkungen 466 34.1 CMPXCHG, und wie die Probleme gelöst werden können 466 34.2 CPUID 472 34.3 Optimierung für Fortgeschrittene 473 34.4 Daten im Assemblermodul 484 Teil 3 Referenz 487 35 Prozessorbefehle 489 36 Coprozessorbefehle 685 37 MMX-Befehle 786 38 Condition Codes 814 38.1 Condition Codes bei Vergleichsbefehlen 814 38.2 Condition Codes bei Restbildung 814 38.3 Condition Codes nach FXAM 815

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.