Slashdot Mirror


Learning x86 for Non-x86 Assembler Programmers?

An anonymous reader asks: "I've done assembler for the 6809, 68000, 8085, MIPS and ARM architectures over the years. But - I've never learned assembler for the most common architecture out there. I would like to change that. I can roughly follow my way around x86 disassemblies, but I'm not as good at optimizing/fine tuning bits of assembler because I am not intimately familiar with all of the addressing modes etc. I would like a book that is targetted at people like me. I would like to be able to fine tune, say a blitter in x86 assembler. One thing I do not in a book is something that is trying to teach me assembler programming in general. Most assembler books seem to fall in the latter category. Are there books out there that might prove useful to me?"

8 of 64 comments (clear)

  1. Helpful website by bdash · · Score: 3, Informative

    A website that could come in handy for learning about x86 assembly language is DDJ Microprocessor Center. In specific, the On-line Intel Documentation links are almost invaluable when learning to code for the x86 architecture. Being Intel reference manuals, they tend to cut to the case relativly quickly.

  2. Wednesday by undeg+chwech · · Score: 2, Informative

    How about the book that was reviewed here on Wednesday?

  3. Intel's pages by oliverthered · · Score: 2, Informative

    Thats a great suggestion, all the low level documenation is downloadable from Intel's site in PDF format.
    You can also request a free CD with everything you'd need on it.

    AMD also have documentation up on there site and I think the x86-64 documentation is also available for free on a CD.

    --
    thank God the internet isn't a human right.
  4. First, get the reference books by cookd · · Score: 5, Informative

    Shh! It's a secret, but Intel offers 4 very nice books at a great price: free.

    They aren't tutorials, so there isn't the same hand-holding that you would get in a book from Barnes & Noble, but they explain things well enough that a seasoned assembly programmer should be able to follow with no problem at all. I think they are exactly what you want.

    --
    Time flies like an arrow. Fruit flies like a banana.
  5. Zen of Assembly Language by LordNimon · · Score: 3, Informative
    Michael Abrash's The Zen of Assembly Language.

    I'm surprised no one has mentioned this book already, because it's exactly what you're looking for. The only problem is that it's dated - it considers the 80386 to be a new processor. There was a time when no self-respecting assembly programmer would be caught dead without it. Alas, I sold mine a couple years ago, since I already learned everything I could from it.

    The only problem is that it (like all of Abrash's books) has been out of print for a long time, and so it will be very hard to find.

    --
    And the men who hold high places must be the ones who start
    To mold a new reality... closer to the heart
  6. For Linux by cjpez · · Score: 4, Informative

    If you're in Linuxland, you might find linuxassembly.org helpful. I've done some assembly before (only a semester's worth, though), and the site was rather useful to me. If you've never done x86, though, there might not be enough there for you . . .

  7. The Visible Computer/286/386/486/... by Anonymous Coward · · Score: 1, Informative

    It might not be in print anymore, though I found it invaluable when I had to learn how to debug system BIOSes.

    The Visible series not only teaches assembly, it does so from a novice perspective and includes an emulator to try out the new commands.

  8. A more serious answer ... by Ninja+Programmer · · Score: 2, Informative

    Since its optimization you are concerned with I have a few choices you will be interested in:

    1. The Zen of Code Optimization by Michael Abrash.
    2. Agner Fog's Assembly Resources
    3. The Athlon Optimization Guide
    4. Intel's IA32 Optimization Guide
    5. The Aggregate Magic Algorithms

    These sources will give you everything you need to know about code optimization for x86.