Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
Michael Abrash's Graphics Programming Black Book (Special Edition) Paperback – July, 1997
Featured Springer resources in mathematics
Explore these featured titles in mathematics. Learn more
Customers who bought this item also bought
What other items do customers buy after viewing this item?
Michael Abrash's Graphics Programming Black Book is a collection of the author's previous books on assembly language and graphics programming, as well as past columns for Dr. Dobb's magazine. Though much of the book (such as 8088/286/386 assembly language optimization and VGA graphics programming) is out-of-date by now, the reader can see some of the larger tendencies in the author's work over the years--a reliance on profiling in order to test code, and creative thinking to improve performance wherever possible. This text features assembler optimization for a variety of problems including searching algorithms, and records the author's approaches to optimizing code for the evolving line of Intel CPUs, from the 8088 on to the early Pentium lines. The last few chapters of this book are more relevant, and include a series of explorations of some of the technology behind the popular Doom and Quake 3-D games by id Corporation (where the author worked). Optimized solutions to 3-D graphics problems from texture mapping, hidden surface removal, and Binary Space Partitioning (BSP) trees are explained. Current gaming and 3-D technology, such as Direct3D and VRML is left out, but it's clear that game programmers like the author will continue to push the limits of current hardware technology in inventive ways. This book is clearly targeted at game developers and serious assembly language programmers, not for the general reader.
If you are a seller for this product, would you like to suggest updates through seller support?
Top Customer Reviews
The book is still very relevant to the Embedded community, embedded processors are becoming increasingly capable and are similar in many ways to the early PC's, with simple graphics controllers and other components, and the skills to make high performance use of these can be re-learned from this book.
Its a great buy and looks pretty imposing on a bookshelf too.
I personally learned a lot from Michael's early articles, and I was proud to contribute to the later ones.
John Carmack, id Software
The book is out of print, but it is by no means rare. Keep an eye on online auctions and on this site. I bought mine here at amazon in "like new" condition, with the CD-ROM, for much less than the original price of the book. Be patient and keep checking. They're out there.
Abrash teaches you how to think like a performance programmer in a way that no one else does. Even the best (and much more current) books on performance programming like Rick Booth's excellent "Inner Loops" can't approach Abrash' skill at imparting the mindset of how one approaches code optimization. No wonder Abrash' earlier books (which are bundled into this one) have names beginning "The Zen of..." Michael Abrash preaches a discipline of constant awareness of the bus, the cache, and the pipeline in a clear and useful fashion. And of course, Test, test, test! Even if you are not a graphics programmer, you will have much to learn about writing tight code and good algorithms from the graphics examples.
Even though the book contains over 1000 pages, the real jewel may be the CD-ROM, which contains the complete text of the long out-of-print classic "Zen of Assembler". It is hard to express how influential a book on 8088(!) programming can be. That book begins by deconstructing a published article on speeding up a program by repeatedly applying optimizations that reduce the cycle count, eventually the cycle count was halved. Despite this, the "optimized" program ran slower than the original, and Abrash clearly explains why.
The chapter on Terje Matheson's wc program tought me more about assembler than any program I have ever looked at. (You can test your skill by rewriting wc to run well on the Pentium II and above. The Pentium code in the book runs into a devastating partial register stall on the newer processors. Then compare your solution to Matheson's latest, which can be found on the internet).
The bottom line is that if you are looking for a cookbook, stay away from this. The shelf-life of performance code samples is too short. On the other hand, if you are interested in really becoming a master of performance programming and are willing to work hard, this book will improve your skills more than you believed possible.
The second part covers low level graphics programming in assembly. The type of graphics programming that people were doing before Windows and DirectX.
Because assembly programming is not very popular anymore, for most people, it is not a good book to get but if assembly optimization is your thing, then you should consider this one as even if there are more recent books on x86 assembly programming, this one is the best that I have seen to lay out the basic concepts such as branch prediction, register contention, how to shuffle assembly instructions to optimize the processor pipelines usage and how to optimize the flag register usage. Armed with this knowledge in the back of your head, even when you write C or C++, you will be able to subtly change the way you formulate if/else blocks and for/while loops that will enhance your program performance without affecting the code readability.
Most Recent Customer Reviews
ModeX is outdated for a long time.Read more