Modern X86 Assembly Language Programming
32-bit, 64-bit, SSE and AVX
Book Details:
Pages: | 700 |
Published: | Nov 25 2014 |
Posted: | May 29 2015 |
Language: | English |
Book format: | PDF |
Book size: | 8.31 MB |
Book Description:
Modern X86 Assembly Language Programming shows the fundamentals of x86 assembly language programming. It focuses on the aspects of the x86 instruction set that are most relevant to application software development. The book's structure and sample code are designed to help the reader quickly understand x86 assembly language programming and the computational capabilities of the x86 platform. Book appendixes can be downloaded here: http://www.apress.com/9781484200650?gtmf=sMajor topics of the book include the following:32-bit core architecture, data types, internal registers, memory addressing modes, and the basic instruction setX87 core architecture, register stack, special purpose registers, floating-point encodings, and instruction setMMX technology and instruction setStreaming SIMD extensions (SSE) and Advanced Vector Extensions (AVX) including internal registers, packed integer arithmetic, packed and scalar floating-point arithmetic, and associated instruction sets64-bit core architecture, data types, internal registers, memory addressing modes, and the basic instruction set64-bit extensions to SSE and AVX technologiesX86 assembly language optimization strategies and techniques What youll learnHow to use the x86's 32-bit and 64-bit instruction sets to create performance-enhancing functions that are callable from a high-level language (C++)How to use x86 assembly language to efficiently manipulate common programming constructs including integers, floating-point values, text strings, arrays, and structuresHow to use the SSE and AVX extensions to significantly accelerate the performance of computationally-intensive algorithms and subroutines in problem domains such as image processing, computer graphics, mathematics, and statisticsHow to use various coding strategies and techniques to optimally exploit the x86's microarchitecture for maximum possible performanceBook appendixes can be downloaded here: http://www.apress.com/9781484200650?gtmf=sWho this book is for The target audience for Modern X86 Assembly Language Programming is software developers including:Software developers who are creating application programs for Windows-based platforms and want to learn how to write performance-enhancing algorithms and functions using x86 assembly languageSoftware developers who are creating application programs for non-Windows environments and want to learn x86 assembly language programmingSoftware developers who have a basic understanding of x86 assembly language programming and want to learn how to use SSE and AVXSoftware developers and computer science students who want or need to gain a better understanding of the x86 platform including its internal architecture and instruction setsThe primary audience for the book is Windows software developers since the sample code will be created using Visual C++ and Microsoft Macro Assembler. Developers targeting non- Windows platforms, however, also can learn from the book since most of the content will be organized and communicated independent of any specific operating system. In order to understand the book's subject material, a background that includes some programming experience using C or C++ will be helpful. Experience with or knowledge of a particular Windows API will not be a prerequisite to benefit from the book. Table of ContentsPreface/foreword1: X86-32 Core Architecture2: X86-32 Core Architecture Programming3: X87 Floating Point Unit4: X87 Floating Point Unit Programming5: MMX Technology6: MMX Programming7: Streaming SIMD Extensions (SSE)8: X86-SSE Programming Scalar Floating-Point9: X86-SSE Programming Packed Floating-Point10: X86-SSE Programming Packed Integers11: X86-SSE Programming Text Strings12: Advanced Vector Extensions (AVX)13: X86-AVX Programming Scalar Floating-Point14: X86-AVX Programming Packed Floating-Point15: X86-AVX Programming Packed Integers16: X86-AVX Programming New Instructions17: X86-64 Core Architecture18: X86-64 Core Architecture Programming19: X86-64 SIMD Architecture20: X86-64 SIMD Programming21: Advanced Topics and Optimization Techniques22: Advanced Topics Programming
The predominant language used in embedded microprocessors, assembly language lets you write programs that are typically faster and more compact than programs written in a high-level language and provide greater control over the program applications. Focusing on the languages used in X86 microprocessors, X86 Assembly Language and C Fundamentals explains how to write programs in the X86 assembly language, the C programming language, and X86 assembly language modules embedded in a C program. A wealth of program design examples, including the complete code and outputs, help you grasp the concepts more easily. Where needed, the book also details the theory behind the design. Learn the X86 Microprocessor Architecture and Commonly Used Instructions Assembly...
Introduces Linux concepts to programmers who are familiar with other operating systems such as Windows XP Provides comprehensive coverage of the Pentium assembly language. Processor designs can be broadly divided into CISC (Complex Instruction Set Computers) and RISC (Reduced Instruction Set Computers). The dominant processor in the PC market, Pentium, belongs to the CISC category, and Linux is fast becoming the number one threat to Microsoft Windows in the server market. This unique guidebook provides comprehensive coverage of the key elements of Assembly language programming, specifically targeting professionals and students who would like to learn Assembly and intend or expect to move to the Linux operating system. The book instructs users on how ...
Master x86 assembly language from the Linux point of view! Assembly language lies at the boundary between hardware and software. While it can be described purely in terms of how it controls hardware, many of its features only make sense in the context of operating systems and programming languages. In Linux Assembly Language Programming, Bob Neveln explains all the key features of x86 assembly language in the context of the Linux operating system and the C language. The book's step-by-step, one-concept-at-a-time coverage is designed to help experienced hardware programmers move to Linux, and learn how to create Linux device drivers. As developers learn new x86 assembly language skills, they also gain "under the hood" insight into how Linux ...
2007 - 2021 © eBooks-IT.org