Assembly Language Step By Step, for Linux
duntemann.com
duntemann.com
This is a really interesting idea.
In the debate over whether every programmer should still learn C, a common argument for is "managed languages don't teach you about pointers and memory". Learning assembler would surely do that even better than learning C (albeit probably less practically useful overall). I can't decide whether that's a reductio ad absurdum for the pro-C argument, or support for this book's thesis.
I think it would be interesting to have a college curriculum that started out in asm the first year, and eventually ended in a symbolic/lambda language like lisp.
However, if your discipline is EE or CE I'd have to disagree. Perhaps my educational experience and focus on embedded system design has distroted my view, but without starting with a basic understanding of computer and instruction set architectures I don't think I would have or could have been successful.
Yes, assembly is tedious and modern compilers do a much better job optimizing for 99% of all cases. But knolwedge of computer architecture as well as an understanding of how to represent common high level program structures (if, for, while...) coupled with a basic understanding of stacks and how C utilizes them at runtime is nothing short of foundational. It is the kind of information that has allowed me to transition to from different platforms and high level languages with very little effort because they are all built upon the same principles.
To be cliche about it, its simply learning to crawl before you can walk.
Not everyone is able to understand and appreciate the beauty in the functionality of asm. I do not wish to deny that this is the best way to put forth the world of CS but we must first understand is the student ready for it or not.
The cover looks familiar. Maybe I have bought this book too back then but never got around to read. However I did read the Borland C book by him: http://www.amazon.com/Tom-Swans-Mastering-Borland-Swan/dp/06...