Ask HN: Where should I begin learning low-level computing, asm?
I'm not in any way interested in trying to become a professional software engineer (though that outcome wouldn't isn't objectionable), I just want to learn how a computer functions from its lowest levels to however high it can go, in that linear order. So I'd like to explore computer processing mechanics (just <i>what</i> is a processor doing and with what?) and assembly with that (near direct manipulation of memory and processor), followed by C, and so on.<p>Would the esteemed community at HN be willing to provide some direction and starting points for such a project? Comments even? I imagine the project trajectory may need to adjust to certain realities of computing. Thanks ahead of time.
4 comments
Give The elements of computing systems (AKA Nand to Tetris) a shot:
http://www1.idc.ac.il/tecs/
http://video.google.com/videoplay?docid=7654043762021156507#
You should take a look around for college courses called "Computer Organization" or such. This is pretty much what you describe. Just search Google for "computer organization course". My alma mater has some available, and I think MIT OCW might as well.
There were 2 computer architecture books by hennessy and patterson. Though they focused on mips, its a very theoretical discussion.
If you want something a bit more practical, Understanding the Linux Kernel tries to be a bit more x86 specific.
If you want something a bit more practical, Understanding the Linux Kernel tries to be a bit more x86 specific.
From www.artofasm.com/index.html you can find art of assembly language online books, good place to learn assembly