decade about graphics and performance programming that’s still relevant to Code Optimization is there too, and even my book Zen of Assembly. Graphics Programming Black Book Special Edition has 65 ratings and 3 reviews. — Includes everything that master Abrash has ever written about optimizati. Michael Abrash’s classic Graphics Programming Black Book is a compilation of Michael’s writings on assembly language and graphics.

Author: Mosho Jurisar
Country: Sri Lanka
Language: English (Spanish)
Genre: Love
Published (Last): 16 July 2014
Pages: 479
PDF File Size: 19.51 Mb
ePub File Size: 4.50 Mb
ISBN: 755-8-28567-731-7
Downloads: 99696
Price: Free* [*Free Regsitration Required]
Uploader: Shaktikus

If a measured period turns out to be longer than 54 ms that is, if timer 0 has counted down and turned overthe Zen timer will display a message to that effect. The system clock will run up to ms about a ninth of a second slow each time the Zen timer is used.

I recall the satisfaction of knowing so much secret knowledge.

Graphics Programming Black Book Special Edition

prograamming Potentially far greater inaccuracy can be incurred by timing code that takes longer than about ms to execute. Only the first K of memory is refreshed in the PC; video adapters and other adapters above K containing memory that requires refreshing must provide their own DRAM refresh in pre-AT systems.

Also, repeated use of the Zen timer usually makes the system clock slow by at most a total of a few seconds, unless grphics that takes much longer than 54 ms to run is timed in which case the Zen timer will notify you that the code is too long to time.

For example, adding a value to a word-sized memory blak requires two word-sized accesses—one to read the destination operand from memory prior to adding to it, and one to write the result of the addition back to the destination operand—and thus incurs not one but two 4-cycle penalties. Many chapters are done in assembler, for example.

Goodreads helps you keep track of books you want to read. Amazon Second Chance Pass it on, trade it in, give it a second life. Always consider the alternatives; a bit of clever thinking and program redesign can go a long way. To drive home the point, Listings 1. I was fortunate enough to be seated next to Jeff at the dinner table, and, not surprisingly, our often animated conversation revolved around computers, computer writing, and more computers not necessarily in that order.


There was a problem filtering reviews right now. This chapter is a long-time favorite of mine because it was the first—and to a large extent only—work that I know of that discussed this material, thereby introducing a generation of PC programmers to pedal-to-the-metal optimization.

Write a customer review. Second, that the relative merits of instructions and optimization rules vary to a surprisingly large degree across the x86 family. We have a sizable household—cats, dogs, kids, com, you name it—so the moving process took a number of car trips. This monthDr.

Michael Abrash’s Graphics Programming Black Book | Hacker News

One effective technique is to minimize access to memory operands, since such accesses compete with instruction fetching for precious memory accesses. This book is getting a little bit old and a little bit outdated. The only true execution time for an instruction is a time measured in a certain context, and that time is meaningful only in that context. The latch-and-read method will work on all PC-compatible computers, but may occasionally produce results that are incorrect by 54 ms.

That does not mean that you should use 2 byte-sized memory accesses to manipulate a word-sized memory variable in preference to 1 word-sized memory access, as, for instance. I’m not sure what those buyers were expecting when they bought a book with forwards about Doom and Quake and the date in which this was originally published.

Then, DOS has to set up internally and branch to the desired function, expending more cycles in the process. The code in Listing 4. Note that only after the initial jump is performed in Listing 3. Dynamic RAM refresh and wait states—our next topics—together form the lowest level at which the hardware of the PC affects code performance.


I personally learned a lot from Michael’s early articles, and I was proud to contribute to the later ones. It could also be the reason the 3.

Graphics Programming Black Book Special Edition by Michael Abrash

Most Popular Stories Blogs. After graduating, it quickly became obvious that I was going to have trouble paying my rent working in the Apple II market in the late eighties, so I was forced to make a very rapid move into the Intel PC environment.

Consequently, the prefetch queue should be able to keep the Execution Unit well-supplied with instruction bytes at all times. Do not be misled by the book title because the 22 first chapters, which represents about the third of the pages, discuss assembly optimization. I examined the subroutine line by line, saving a cycle here and a cycle there, until the code truly seemed to be optimized.

That means that you can, for example, multiply EBX by 5 with:. One fabulously cold day, inspiration strikes:.

The second reason is the hallmark of the mediocre programmer. B rated it really liked it Oct 14, I figured this out by watching the code execute with a debugger, but you can buy library source code from both Microsoft and Borland. The rule is not that the arithmetic flags change whenever the CPU performs a calculation; rather, the flags change whenever you execute an arithmetic, logical, or flag control such as CLC to clear the Carry flag instruction. It’s a Wonderful Life 4. The single most critical aspect of the hardware, and the one about which it is hardest to learn, is the CPU.