Low-Level Programming - Igor Zhirkov

Low-Level Programming (eBook)

C, Assembly, and Program Execution on Intel® 64 Architecture

(Autor)

eBook Download: PDF
2017 | 1st ed.
XXVI, 435 Seiten
Apress (Verlag)
978-1-4842-2403-8 (ISBN)
Systemvoraussetzungen
99,99 inkl. MwSt
  • Download sofort lieferbar
  • Zahlungsarten anzeigen

Learn Intel 64 assembly language and architecture, become proficient in C, and understand how the programs are compiled and executed down to machine instructions, enabling you to write robust, high-performance code.

Low-Level Programming explains Intel 64 architecture as the result of von Neumann architecture evolution.  The book teaches the latest version of the C language (C11) and assembly language from scratch.  It covers the entire path from source code to program execution, including generation of ELF object files, and static and dynamic linking. Code examples and exercises are included along with the best code practices. Optimization capabilities and limits of modern compilers are examined, enabling you to balance between program readability and performance. The use of various performance-gain techniques is demonstrated, such as SSE instructions and pre-fetching. Relevant Computer Science topics such as models of computation and formal grammars are addressed, and their practical value explained.

What You'll Learn

Low-Level Programming teaches programmers to:

  • Freely write in assembly language
  • Understand the programming model of Intel 64
  • Write maintainable and robust code in C11
  • Follow the compilation process and decipher assembly listings
  • Debug errors in compiled assembly code
  • Use appropriate models of computation to greatly reduce program complexity
  • Write performance-critical code
  • Comprehend the impact of a weak memory model in multi-threaded applications

Who This Book Is For

Intermediate to advanced programmers and programming students



Igor Zhirkov teaches his highly successful 'System Programming Languages' course at ITMO University in Saint Petersburg and is a six-time winner of the ACM-ICPC Intercollegiate World Programming Championship. He studied at Saint Petersburg Academic University and received his master degree from ITMO University. Currently, he is doing research in verified C refactorings as part of his PhD thesis and formalization of Bulk Synchronous Parallelism library in C at IMT Atlantique in Nantes, France. His main interests are low-level programming, programming language theory, and type theory.


Learn Intel 64 assembly language and architecture, become proficient in C, and understand how the programs are compiled and executed down to machine instructions, enabling you to write robust, high-performance code.Low-Level Programming explains Intel 64 architecture as the result of von Neumann architecture evolution.  The book teaches the latest version of the C language (C11) and assembly language from scratch.  It covers the entire path from source code to program execution, including generation of ELF object files, and static and dynamic linking. Code examples and exercises are included along with the best code practices. Optimization capabilities and limits of modern compilers are examined, enabling you to balance between program readability and performance. The use of various performance-gain techniques is demonstrated, such as SSE instructions and pre-fetching. Relevant Computer Science topics such as models of computation and formal grammars are addressed, and their practical value explained.What You'll LearnLow-Level Programming teaches programmers to:Freely write in assembly languageUnderstand the programming model of Intel 64Write maintainable and robust code in C11Follow the compilation process and decipher assembly listingsDebug errors in compiled assembly codeUse appropriate models of computation to greatly reduce program complexityWrite performance-critical codeComprehend the impact of a weak memory model in multi-threaded applicationsWho This Book Is ForIntermediate to advanced programmers and programming students

Igor Zhirkov teaches his highly successful “System Programming Languages” course at ITMO University in Saint Petersburg. He studied at Saint Petersburg Academic University and received his master degree from ITMO University. Currently, he is doing research in verified C refactorings as part of his PhD thesis and formalization of Bulk Synchronous Parallelism library in C at IMT Atlantique in Nantes, France. His main interests are low-level programming, programming language theory, and type theory.

Part I: Assembly Language and Computer Architecture.-Chapter 1: Basic Computer Architecture.-Chapter 2: Assembly Language.-Chapter 3: Legacy.-Chapter 4: Virtual Memory.-Chapter 5: Compilation Pipeline.-Chapter 6: Interrupts and System Calls.-Chapter 7: Models of Computation.-Part II: The C Programming Language.-Chapter 8: Basics.-Chapter 9: Type System.-Chapter 10: Code Structure.-Chapter 11: Memory.-Chapter 12: Syntax, Semantics, and Pragmatics.-Chapter 13: Good Code Practices.-Part III: Between C and Assembly.-Chapter 14: Translation Details.-Chapter 15: Shared Objects.-Chapter 16: Performance.-Chapter 17: Multithreading.-Part IV: Appendices.-Chapter 18: Appendix A: Using gdb.-Chapter 19: Appendix B: Using Make.-Chapter 20: Appendix C: System Calls.-Chapter 21: Appendix D: Performance Tests.- Chapter 22: Bibliography.-

Erscheint lt. Verlag 27.6.2017
Zusatzinfo XXVI, 435 p. 47 illus., 4 illus. in color.
Verlagsort Berkeley
Sprache englisch
Themenwelt Mathematik / Informatik Informatik Programmiersprachen / -werkzeuge
Schlagworte BMP format • calling conventions • compilation cycle • debugging with gdb • endianness • finite automatons • Forth compiler • function pointers • memory allocator • nonstrict dynamic typing • polymorphism in C • procedure calling sequences • protection rings • return value optimization • RISC • stack frames • stack guard • stack overflow • string literals • von Neumann architecture
ISBN-10 1-4842-2403-5 / 1484224035
ISBN-13 978-1-4842-2403-8 / 9781484224038
Haben Sie eine Frage zum Produkt?
PDFPDF (Wasserzeichen)
Größe: 5,7 MB

DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasser­zeichen und ist damit für Sie persona­lisiert. Bei einer missbräuch­lichen Weiter­gabe des eBooks an Dritte ist eine Rück­ver­folgung an die Quelle möglich.

Dateiformat: PDF (Portable Document Format)
Mit einem festen Seiten­layout eignet sich die PDF besonders für Fach­bücher mit Spalten, Tabellen und Abbild­ungen. Eine PDF kann auf fast allen Geräten ange­zeigt werden, ist aber für kleine Displays (Smart­phone, eReader) nur einge­schränkt geeignet.

Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür einen PDF-Viewer - z.B. den Adobe Reader oder Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür einen PDF-Viewer - z.B. die kostenlose Adobe Digital Editions-App.

Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.

Mehr entdecken
aus dem Bereich
Das umfassende Handbuch

von Johannes Ernesti; Peter Kaiser

eBook Download (2023)
Rheinwerk Computing (Verlag)
31,43
Das Handbuch für Webentwickler

von Philip Ackermann

eBook Download (2023)
Rheinwerk Computing (Verlag)
34,93
Deterministische und randomisierte Algorithmen

von Volker Turau; Christoph Weyer

eBook Download (2024)
De Gruyter (Verlag)
64,95