
Einführung in die moderne Assembler-Programmierung
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
More details
Other editions
Additional editions


Person
Content
- Cover
- Titel
- Impressum
- Widmung
- Inhaltsübersicht
- Inhaltsverzeichnis
- Vorwort
- Thema
- Teil I Grundlagen
- 1 Das Abstrakte
- 1.1 Zahlen
- 1.1.1 Addition von Binärzahlen
- 1.1.2 Ein Vorgriff auf die Wortbreite
- 1.1.3 Vorzeichen und Zweierkomplement
- 1.1.4 Vorzeichenerweiterung
- 1.2 Zeichen
- 1.2.1 ASCII
- 1.2.2 Besser als ASCII
- 1.2.3 Zeilenende
- 1.2.4 Stringformate
- 2 Hardware
- 2.1 Ein Überblick
- 2.2 Der Prozessor
- 2.2.1 Aufbau
- 2.2.2 CISC vs. RISC
- 2.2.3 Register
- 2.2.4 Programmzähler
- 2.2.5 Weitere Hardwarebegriffe
- 2.3 Der Arbeitsspeicher
- 2.3.1 Noch mal zur Wortbreite
- 2.3.2 Speicherarchitekturen
- 2.3.3 Ein- und Ausgabe über Adressen
- 2.3.4 Adressierungsarten
- 3 Code
- 3.1 Noch mehr Geschichte
- 3.2 Maschinensprache
- 3.3 Assembler
- 3.3.1 Opcode und Operand
- 4 Umgebung
- 4.1 Werkzeuge
- 4.2 Künstliche Intelligenz
- 4.3 Quellcode
- 4.3.1 Sektionen
- 4.3.2 Datenarten
- 4.3.3 Definitionen
- 5 Konzepte
- 5.1 Sprünge
- 5.2 Verzweigungen
- 5.3 Schleifen
- 5.4 Stapel
- 5.5 Subroutinen
- 5.6 Byte-Reihenfolge
- 5.6.1 Umgekehrte Polnische Notation (UPN)
- 5.7 Cache
- 5.8 Pipeline
- Teil II RISC-V
- 6 Basen, Module und Profile
- 6.1 Der Kleine: RV32E
- 7 Register
- 7.1 Die besonderen Fünf
- 7.2 Doppelbelegungen
- 7.3 Vogelfreie und geschützte Register
- 7.4 Register bei RV32E
- 7.5 Register-Synonyme
- 8 Adressierungsarten
- 9 Speicher
- 9.1 Ausrichtung
- 10 Der Befehlssatz
- 10.1 Laden und speichern
- 10.1.1 Load Immediate li
- 10.1.2 Load Address la
- 10.1.3 Move mv
- 10.1.4 Laden aus dem Speicher
- 10.1.5 Kampf der Vorzeichenerweiterung
- 10.1.6 Speicherbefehle
- 10.2 Mathe und Logik
- 10.2.1 Addition und Subtraktion
- 10.2.2 Multiplikation und Division
- 10.2.3 Division
- 10.2.4 Das Modul M bei RV64
- 10.2.5 Logikbefehle
- 10.2.6 Schiebebefehle
- 10.3 Sprünge und Verzweigungen
- 10.3.1 Nur hin: einfache Sprünge
- 10.3.2 There and back again: Subroutinen
- 10.3.3 Verzweigungen
- 10.4 Vergleichen und setzen
- 10.5 Reste
- 10.5.1 Systembefehle
- 10.5.2 Kontroll- und Status-Register
- 10.5.3 Leerbefehl
- 10.5.4 Speicherzugriffe
- 10.5.5 Besondere RV64- und RV128-Befehle
- 10.5.6 Illegale Befehle
- 10.6 Komprimierte Befehle
- 11 Die Wahrheit
- 11.1 Register nach der roten Pille
- 11.2 Mikroanatomie der Befehle
- 11.2.1 Genaueres zur Befehlslänge
- 11.3 Pseudo-Befehle
- 11.3.1 Ladebefehle
- 11.3.2 Verzweigungen
- 11.3.3 Sprungbefehle
- 11.3.4 Weitere Pseudo-Befehle
- 11.4 Macro-Op-Fusion
- 11.5 Zurück ans Licht
- Teil III Vertiefung
- 12 Effizienter Code
- 12.1 Das Ziel
- 12.2 Verfahren
- 12.2.1 Strength Reduction
- 12.2.2 Inlining
- 12.2.3 Verzweigungen ersetzen
- 12.2.4 Parallele Befehlsausführung
- 12.2.5 Entkopplung
- 12.2.6 Das große Bild lässt die Kirche im Dorf
- 13 Systemaufrufe und Bibliotheken
- 13.1 Systemaufrufe
- 13.1.1 Systemaufrufe bei RARS
- 13.1.2 Systemaufrufe bei Linux
- 13.1.3 Von x86 zu RISC-V
- 13.2 Die C-Bibliothek
- 13.2.1 Ausgabe: puts
- 13.2.2 Ausgabe: printf
- 13.2.3 Eingabe: scanf
- 13.2.4 Umwandlung: strtol
- 13.2.5 Und tschüss: exit
- 13.3 Schummeln macht klug
- 13.3.1 Schummeln mit C
- 13.3.2 Schummeln mit Rust
- 13.3.3 Noch viel mehr schummeln
- 14 Stapel
- 14.1 Stapelnutzung im Alltag
- 14.1.1 I love my sweet 16 stack pointer
- 14.2 Die normative Kraft des C-Moduls
- 14.2.1 Einschub: Die Wahrheit hinter der Wahrheit
- 14.3 Eigene Stapel
- 14.4 Gefahr im Überfluss
- 15 Sprünge und Verzweigungen
- 15.1 Mehrfachverzweigungen
- 15.1.1 Verzweigungsketten
- 15.1.2 Sprungtabellen
- 15.1.3 Dispatch-Tabellen
- 15.1.4 Ein Sonderfall am Rande der Welt
- 15.2 Tail Calls
- 15.3 Funktionsaufrufe
- 15.4 Millicode
- 15.5 Datenübergabe an Subroutinen
- 15.5.1 Das Anhalter-Bit
- 15.5.2 Fragwürdig bis verboten: Datenübergabe im Code
- 16 Schleifen
- 16.1 Allgemeines zu Schleifen
- 16.2 Basis + Index vs. Zeiger
- 16.2.1 Und nun ein kurzer Rant über das Fehlen eines Indexmodus
- 16.3 Techniken für effektive Schleifen
- 16.3.1 Ausrollen der Schleife
- 16.3.2 Eine volle Breitseite Wortbreite
- 16.3.3 Der Sprung in die ausgerollte Schleife
- 16.3.4 Immutables müssen draußen warten
- 16.3.5 Schleifen zusammenfassen
- 16.3.6 Cache as Cache can
- 16.3.7 Unroll and Jam
- 16.3.8 Ein Schritt zurück
- 16.3.9 Der Lohn der Verschwendung
- 16.3.10 Fallbeispiel: Die beste Schleife ist keine
- 16.4 Rekursion
- 16.4.1 Ein heiterer Ausflug zu den wirklich großen Zahlen
- 17 Daten
- 17.1 Strings mit fixierter Länge
- 17.2 Stringtabellen
- 17.3 Bitfelder
- 18 Mathe
- 18.1 Überläufe, Überträge und andere Katastrophen
- 18.1.1 Übertrag bei Addition ohne Vorzeichen
- 18.1.2 Überlauf bei Addition mit Vorzeichen
- 18.1.3 Überlauf bei der Subtraktion ohne Vorzeichen
- 18.2 (M)ultiplikation
- 18.2.1 Schieben als erste Wahl
- 18.2.2 Addieren in der Schleife
- 18.2.3 Wie in der Schule: Shift-Add
- 18.3 Division
- 18.3.1 Division durch Rechtsverschiebung
- 18.3.2 Division durch Subtraktion
- 18.3.3 Fallbeispiel: FizzBuzz
- 19 Künstliche Intelligenz
- 19.1 Allgemeines
- 19.2 Code-Generierung
- 19.3 Code-Analyse
- 19.4 Andere Anwendungen
- Teil IV Projekte
- 20 Eine minimale Eingabeschleife
- 20.1 Projektvorschlag: ed
- 21 Eine größere REPL
- 21.1 Ziele
- 21.1.1 Tellerstapeln (unnötig) schwer gemacht
- 21.2 Der Aufbau, iterativ
- 21.2.1 Schritt I: Nur ein Zeichen
- 21.2.2 Schritt II: Eingabe
- 21.2.3 Schritt III: Parsing (provisorisch)
- 21.2.4 Einschub: Byte-wise but time-foolish
- 21.2.5 Schritt IV: Alle Befehle
- 21.2.6 Schritt V: Dictionary
- 21.2.7 Schritt VI: Parsing (jetzt richtig)
- 21.2.8 Schritt VII: Kommandosuche
- 21.3 Nächste Schritte
- 21.4 Projektvorschlag: Forth
- Teil V Anhang
- 22 Häufige Fehler
- 23 Stilfibel
- 24 Danksagungen
- 24.1 Colophon
- 25 Literatur
- Index
System requirements
File format: PDF
Copy protection: Watermark-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Use the free software Adobe Reader, Adobe Digital Editions, or any other PDF viewer of your choice (see eBook Help).
- Tablet/Smartphone (Android; iOS): Install the free app Adobe Digital Editions or another reading app for eBooks, e.g., PocketBook (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (only limited: Kindle).
The file format PDF always displays a book page identically on any hardware. This makes PDF suitable for complex layouts such as those used in textbooks and reference books (images, tables, columns, footnotes). Unfortunately, on the small screens of e-readers or smartphones, PDFs are rather annoying, requiring too much scrolling.
This eBook uses Watermark-DRM, a „soft” copy protection. This means that there are no technical restrictions to prevent illegal distribution. However, there is a personalised watermark embedded in the eBook that can be used to identify the purchaser of the eBook in the event of misuse and to provide evidence for legal purposes.
For more information, see our eBook Help page.