Since the invention of the personal computer, software developers have used x86 assembly language
to create innovative solutions for a wide variety of algorithmic challenges. During the early days of the
PC era, it was common practice to code large portions of a program or complete applications using x86
assembly language. Given the 21st Century prevalence of high-level languages such as C++, C#, Java, and
Python, it may be surprising to learn that many software developers still employ assembly language to code
performance-critical sections of their programs. And while compilers have improved remarkably over the
years in terms of generating machine code that is both spatially and temporally efficient, situations still exist
where it makes sense for a software developer to exploit the benefits of assembly language programming.
The single-instruction multiple-data (SIMD) architectures of modern x86 processors provide another
explanation for the continued interest in assembly language programming. A SIMD-capable processor
contains computational resources that facilitate simultaneous calculations using multiple data values, which
can significantly improve the performance of applications that must deliver real-time responsiveness. SIMD
architectures are also well-suited for computationally-intense problem domains, such as image processing,
audio and video encoding, computer-aided design, computer graphics, and data mining. Unfortunately,
many high-level languages and development tools are still unable to fully or even partially exploit the
SIMD capabilities of a modern x86 processor. Assembly language, on the other hand, enables the software
developer to take full advantage of a processor’s SIMD resources.
C in Depth
In the third edition of the book C in depth , the authors explain the basics of the programming language while maintaining the integrity and clarity of the programs. The book can be utilized by both beginners and advanced level programmers as a self-evaluation and learning source. There are more than 310 programs with explanations to illustrate... Data Structures and Algorithms in C++
Strengthen your understanding of data structures and their algorithms for the foundation you need to successfully design, implement and maintain virtually any software system. Theoretical, yet practical, DATA STRUCUTRES AND ALGORITHMS IN C++, 4E by experienced author Adam Drosdek highlights the fundamental connection between data structures and... The Blockchain Developer: A Practical Guide for Designing, Implementing, Publishing, Testing, and Securing Distributed Blockchain-based Projects
Become a Blockchain developer and design, build, publish, test, maintain and secure scalable decentralized Blockchain projects using Bitcoin, Ethereum, NEO, EOS and Hyperledger.
This book helps you understand Blockchain beyond development and crypto to better harness its power and capability. You will learn...
Pro TBB: C++ Parallel Programming with Threading Building Blocks
This open access book is a modern guide for all C++ programmers to learn Threading Building Blocks (TBB). Written by TBB and parallel programming experts, this book reflects their collective decades of experience in developing and teaching parallel programming with TBB, offering their insights in an approachable manner. Throughout...
PyTorch Recipes: A Problem-Solution Approach
Get up to speed with the deep learning concepts of Pytorch using a problem-solution approach. Starting with an introduction to PyTorch, you'll get familiarized with tensors, a type of data structure used to calculate arithmetic operations and also learn how they operate. You will then take a look...
Clean Python: Elegant Coding in Python
Python is one of the most popular languages today. Relatively new
fields such as data science, AI, robotics, and data analytics, along with
traditional professions such as web development and scientific research,
are embracing Python. It’s increasingly important for programmers writing...