Introduction to 64 Bit Intel Assembly Language Programming for Linux: Second Edition

by Brand: Createspace Independent Publishing Platform

Order now to get it by: Sunday March 05 - Tuesday March 07

Condition: New

Product ID: 766433

Delivery Information |Returns & Exchanges |Payment Methods


  • Used Book in Good Condition
  • This is the second edition of this assembly language programming textbook introducing programmers to 64 bit Intel
    assembly language. The primary addition to the second edition is the discussion of the free integrated development
    environment, ebe, designed by the author specifically to meet the needs of assembly language programmers. Ebe is a
    Python program which uses the Tkinter and Pwm widget sets to implement a GUI environment consisting of a source window,
    a data window, a registers window, a console window, a terminal window and a project window. The source window includes
    a full-featured text editor with convenient controls for assembling, linking and debugging a program. The project
    facility allows a program to be built from C source code files and assembly source files. Assembly is performed
    automatically using the yasm assembler and linking is performed with ld or gcc. Debugging operates by transparently
    sending commands into the gdb debugger while automatically displaying registers and variables after each debugging step.
    Additional information about ebe can be found at 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 automatically from the ebe IDE 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 internally to compile C programs. The book starts early emphasizing using ebe to
    debug programs, along with teaching equivalent commands using gdb. Being able to single-step assembly programs is
    critical in learning assembly programming. Ebe makes this far easier than using gdb directly. 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. 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. A companion web site,, has a
    collection of PDF slides which instructors can use for in-class presentations and source code for sample programs.


    Bestsellers in Programming