Home | Amazing | Today | Tags | Publishers | Years | Account | Search 
Introduction to 64 Bit Intel Assembly Language Programming for Linux

Buy
The Intel CPU architecture has evolved over 3 decades from a 1 6 bit CPU with no memory protection, through a period with 32 bit processors with sophisticated architectures into the current series of processors which support all the old modes of operation in addition to a greatly expanded 64 bit mode of operation. Assembly textbooks tend to focus on the history and generally conclude with a discussion on the 32 bit mode. Students are introduced to the concepts of 1 6 bit CPUs with segment registers allowing access to 1 megabyte of internal memory. This is an unnecessary focus on the past.

With the x86-64 architecture there is almost a complete departure from the past. Segment registers are essentially obsolete and more register usage is completely general purpose, with the glaring exception of the repeat-string loops which use specific registers and have no operands. Both these changes contribute to simpler assembly language programmmg.

This book is an assembly language programming textbook introducing programmers to 64 bit Intel assembly language. The book is intended as a first assembly language book for programmers experienced in high level programming in a language like C or C++. The assembly programming is performed using the yasm assembler (much like the nasm assembler) under the Linux operating system. The book primarily teaches how to write assembly code compatible with C programs. The reader will learn to call C functions from assembly language and to call assembly functions from C in addition to writing complete programs in assembly language. The gcc compiler is used for C programming. The book starts early emphasizing using the gdb debugger to debug programs. Being able to single-step assembly programs is critical in learning assembly programming. Highlights of the book include doing input/output programming using the Linux system calls and the C library, implementing data structures in assembly language and high performance assembly language programming. A companion web site has a collection of PDF slides which instructors can use for in-class presentations and source code for sample programs. Early chapters of the book rely on using the debugger to observe program behavior. After a chapter on functions, the user is prepared to use printf and scanf from the C library to perform I/O. The chapter on data structures covers singly linked lists, doubly linked circular lists, hash tables and binary trees. Test programs are presented for all these data structures. There is a chapter on optimization techniques and 3 chapters on specific optimizations. One chapter covers how to efficiently count the 1 bits in an array with the most efficient version using the recently-introduced popcnt instruction. Another chapter covers using SSE instructions to create an efficient implementation of the Sobel filtering algorithm. The final high performance programming chapter discusses computing correlation between data in 2 arrays. There is an AVX implementation which achieves 20.5 GFLOPs on a single core of a Core i7 CPU.

(HTML tags aren't allowed.)

Dreamweaver UltraDev 4 Bible
Dreamweaver UltraDev 4 Bible
From the author of the bestselling Dreamweaver Bible comes an indispensable insider's guide to the hot new software for interactive database-driven Web pages - the completely revamped Macromedia version of Drumbeat, built with Dreamweaver at its core, that lets Web designers output Active Server Pages, Java Server Pages, or Coldfusion pages. The...
Solving Enterprise Applications Performance Puzzles: Queuing Models to the Rescue
Solving Enterprise Applications Performance Puzzles: Queuing Models to the Rescue
Poorly performing enterprise applications are the weakest links in a corporation ’ s management chains, causing delays and disruptions of critical business functions. In trying to strengthen the links, companies spend dearly on applications tuning and sizing; unfortunately, the only deliverables of many of such ventures...
Dynamics of Complex Systems (Studies in Nonlinearity)
Dynamics of Complex Systems (Studies in Nonlinearity)
The study of complex systems in a unified framework has become recognized in recent years as a new scientific discipline, the ultimate in the interdisciplinary fields. Breaking down the barriers between physics, chemistry, and biology and the so-called soft sciences of psychology, sociology, economics and anthropology, this text explores the...

Learning Perforce SCM
Learning Perforce SCM

A comprehensive guide to the world's leading enterprise configuration management system

Overview

  • Master the use of P4V - the Perforce Visual Client
  • Get into the Perforce mindset for seamless use in your daily work
  • Grasp key concepts and learn how to apply them for proper...
BMC Control-M 7: A Journey from Traditional Batch Scheduling to Workload Automation
BMC Control-M 7: A Journey from Traditional Batch Scheduling to Workload Automation

Master one of the world's most powerful enterprise workload automation tools – BMC Control-M 7 - using this book

  • Implement and utilize a world class enterprise batch scheduling and workload automation tool in the best possible ways with this book and e-book
  • Hands-on implementation and...
Adaptive and Natural Computing Algorithms: Proceedings of the International Conference in Coimbra, Portugal, 2005
Adaptive and Natural Computing Algorithms: Proceedings of the International Conference in Coimbra, Portugal, 2005
The papers in this volume present theoretical insights and report practical applications both for neural networks, genetic algorithms and evolutionary computation. In the field of natural computing, swarm optimization, bioinformatics and computational biology contributions are no less compelling. A wide selection of contributions report...
©2021 LearnIT (support@pdfchm.net) - Privacy Policy