A bunch of the fixes necessary in order to get Mac Firefox running on Intel Macs are assembly code fixes. I don’t really know much about coding in assembly, so fortunately David Baron (Mozilla Corp.) and Eric Albert (Apple) have been helping out whenever assembly code needs to be written. The fixes are interesting to me, and I’d like to work on that code more, so I’ve decided to learn how to write 80×86 assembly code.
Step one was to get a book. After looking and asking around, I settled on Richard C. Detmer’s “80×86 Assembly Language and Computer Architecture.” While it covers some computer architecture stuff I already know, it is doing a great job of teaching me 80×86 assembly so far. I find it to be very readable, concise, and it explains bigger concepts and patterns in addition to serving as instruction documentation. Intel’s documentation is just a printed-off instruction reference, which isn’t all that helpful unless you already know how to write assembly pretty well.
One problem I have with Detmer’s book is that it uses Windows for its examples. Since all I ever do with Windows is look up books at public libraries, that isn’t too helpful. I found this document to get me going on Mac OS X.