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)

Reply via email to