

Assembly Language Step By Step, for Linux - nkurz
http://www.duntemann.com/assembly.html

======
samstokes
"The idea behind the book, nutty as it might seem, is to teach assembly
language as your _first_ programming language."

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.

~~~
cconstantine
I really like the idea of teaching asm first for adults. I really didn't
understand what I was doing in C until I'd learned assembly.

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.

~~~
rick_2047
sir assembly at the first year would scare away people from majoring in EE or
CS. I think C is much better than asm to start with. But if they want student
can be given a choice to learn asm as a elective in the first year. A choice
bases credit system comes real handy in such a situation.Also we can have the
same course taught in asm and C and students can be given a choice to learn
which ever they want. So we would have to conduct fewer separate classes if
the course focus is on the theory of computation.

~~~
nullproc
From the perspective of a CS student I can understand abstrating the
computational theroy from the applied science of programming for a particluar
ISA and agree with your point. A similar arguement can potentially be made for
Software Engineering.

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.

~~~
rick_2047
I personally parallel your views sir, and that too to a very great extent. But
to a general high school student programming and computation is more about
java and/or c++ or other such high level language. The bombarding the poor
fellow with asm at the very first semester would be way too much for most of
them.

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.

------
pan69
I learned Assembly from a book called Mastering Turbo Assembler by a guy named
Tom Swan. That was for DOS (early nineties). I'm definitely going to buy this
book even if it's just for nostalgic reasons.

~~~
listic
you can: [http://www.amazon.com/Mastering-Turbo-Assembler-Tom-
Swan/dp/...](http://www.amazon.com/Mastering-Turbo-Assembler-Tom-
Swan/dp/0672305267/ref=sr_1_1?ie=UTF8&s=books&qid=1263291495&sr=8-1)

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...](http://www.amazon.com/Tom-Swans-Mastering-Borland-
Swan/dp/0672308029/ref=ntt_at_ep_dpi_4)

~~~
pan69
Yeah, sorry for not linking. Tom's a good writer. I also read his Mastering
Turbo Pascal ([http://www.amazon.com/Mastering-Turbo-Pascal-Tom-
Swan/dp/067...](http://www.amazon.com/Mastering-Turbo-Pascal-Tom-
Swan/dp/0672485052/ref=sr_1_2?ie=UTF8&s=books&qid=1263294609&sr=1-2)).

------
geoffc
Sweet!! I got started on his DOS assembly book an eon ago. I'm buying this
today.

