On Thu, 4 Dec 2003, Edi Weitz wrote:
> One of the things on my to-do list is learning enough assembly > language to understand the output of DISASSEMBLE and maybe later > fiddle with the compiler. > What exactly am I looking for? > > - Most of my work is on x86 nowadays, so I guess this is what I want > to learn first. (I'm told that other architectures like PPC or Sparc > are nicer but I currently don't have a Mac or a Sun or whatever.) It's more the other way round - not that PPC/Sparc are nicer, but that x86 is extraordinarily braindead. > - As I said, I once knew 6502 assembler. I also know enough Lisp, C, > Perl, Java, and other languages to pay my rent, so I don't > necessarily need a book that teaches me how to count or needs ten > pages to explain binary numbers... :) One thing you should be aware of is, as you say, that modern microprocessors work quite different from those old 8-bit micros, so I would suggest you first try to get some understanding of superscalar, superpipelined architectures and the nontrivial issues of memory management units, delayed branching, and such. For this, I can recommend Hennesey/Patterson (title is "Computer Architecture, a Quantitative Approach", I suppose). After reading that, you should be able to read and understand the processor manuals available from Intel and AMD as pdf. (Hint: the AMD ones are (or at least always have been in the past) easier to find on their websites.) That's about the best documentation you can get, I suppose. (Though some people, like Fefe, may think different here...) -- regards, [EMAIL PROTECTED] (o_ Thomas Fischbacher - http://www.cip.physik.uni-muenchen.de/~tf //\ (lambda (n) ((lambda (p q r) (p p q r)) (lambda (g x y) V_/_ (if (= x 0) y (g g (- x 1) (* x y)))) n 1)) (Debian GNU)
