Hacker News new | ask | show | jobs
by ditoax 4478 days ago
Learning Assembly language has been on my list of "want to do" for a long time now but as I have never had a need for it professionally I kept putting it off. I actually have time for myself now and outside of learning to cook properly and cycle a lot I would really like to finally tick this off my bucket list. The problem is I am not too sure where to actually start. I want something that starts from the bottom and teaches me about the CPU and goes on from there. I know what a register for example but I don't know what a register is if you understand?

So is there a book or web resources that is really a beginners guide to assembly? I understand x86 is not the nicest place to start but I have an x86 CPU in my laptop and not much else so it is a better place to start that anywhere else really. Anyone got any advice?

NB: My background is very high level languages such as JavaScript and Python and not much lower level. A bit of C++ back in the 90s but that knowledge is long gone.

3 comments

I highly recommend Computer Systems - A Programmer's Perspective. I learned a ton from that book. I think chapter 2 or 3 is where x86 is covered in some detail. It's really well written, and the way they present assembly, C, and certain parts of POSIX draws everything together really well such that you come out with a good mix of practical and theoretical knowledge.
"Programming from the Ground Up" (linked from a couple of other posts) has exactly what you want. There's no need to learn C first - it becomes obvious how memory and pointers work when you're actually doing it. It's a lot easier than people make out, just give it a go.
Many thanks! Checking it out now.
Might be a good idea to brush up your C first. Make sure you really understand memory and pointers.
Yeah I think I will pick up Modern C by King and/or Head First C. Book seem pretty good. I have a copy of K&R somewhere already.