Product: 0470497025
This book by one of the true gurus of computer programming is long overdue, but well worth the wait. I’m using it to refresh my dormant assembly language skills. I highly recommend this book for both beginners and rusty old-timers like me.
Please note that Jeff’s book teaches assembly language programming for the IA-32 (Intel/AMD) CPUs on a Linux Ubuntu platform, NOT Windows. He uses development tools that are free in the Linux world, specifically: the KDE desktop, the Kate programming editor, the Nasm assembler, the Linux built-in linker, and the Insight debugger. Users of other Linux kernels should have little trouble following his instructions on their systems. In particular, everything works under the Gnome desktop.
Unlike many other books on assembly language, Jeff doesn’t start by plunging the reader into a discussion of arcane assembly opcodes. He first draws on his decades-long experience to give a thorough introduction to the history and evolution of the architecture of the Intel family of processors, as well as a good presentation of number bases. Almost the first third of the book is devoted to such valuable prefatory background. Having taught assembly language courses at the college level, I truly commend this approach.
WARNING: There are two main problems to be aware of. Jeff developed the book using a 32-bit machine and version 8.10 of Linux Ubuntu. To save space in what should properly be a review, I have posted the fixes on a website I created specifically to address these problems. See my comment to this review for directions to that resource. Meanwhile, here’s brief descriptions of the problems:
First problem: If you have a 64-bit CPU and Linux kernel, you will encounter a minor problem assembling your source code if you enter the command lines he uses for Nasm (see pg. 144 of the book), which targeted a 32-bit CPU.
Second problem: Unfortunately, with the release of Ubuntu 10.4, Jeff was blind-sided by a change in that release: the Insight debugger, which is used throughout his book, was dropped from the Ubuntu 10.4 distribution. It is also no longer listed in any of the standard repositories known to Ubuntu 10.4. However, I’ve posted a method for installing Insight in Ubuntu 10.4 on the website I mentioned above. Of course, you can also use the Kdbg debugger, although it doesn’t have some of the features of Insight that Jeff likes. He presents an introduction to Kdbg in the early parts of the book.
These problems should be non-existent if you are using an earlier release of Ubuntu and a 32-bit machine, and the Insight problem has only appeared as of the Ubuntu 10.4 release. Since fixes are now available, these problems are no reason to avoid purchasing this excellent book on assembly language programming.
Rating: 5
0470497025
Count: 13
Review by Gary E. Albers
on 2020-03-10