Hacker News new | past | comments | ask | show | jobs | submit login

This is a great resource, and the following is not a criticism, but an observation.

What I've found with most assembly language textbooks and online resources is that while the basics get covered well enough, the fundamental knowledge base is often skimmed over, as are the many assumptions and conventions that are made in how the CPU is supposed to work.

I first learned 8086 assembler from Peter Norton's book (http://www.amazon.com/Peter-Nortons-Assembly-Language-Book/d...), and more than any other resource, that taught me about how things actually work. It goes beyond just knowing the registers and the mnemonics and explains in a fantastically clear way all the implicit work that's going on behind the scenes, even in assembly code. From the stack to data segments and direct video control, I learned more about how computers work from this book than from my entire college Computer Science program. And I didn't even have an assembler to actually try any of the code at the time I read it.

I'm not sure if the book would still hold up from a practical perspective, as it does focus very much on MS-DOS-specific interrupts. So what I wonder is... is there a similar resource available today for learning what's going on behind the scenes in the modern 64-bit CPU on modern OSes?

> anyone know of a mirror?


That book was great. I made the mistake (perhaps) of using it to try to learn assembly language right after learning BASIC (Advanced BASIC that comes with MS-DOS/PC-DOS) and before learning Pascal or C. It had a program you were supposed to type in (a hex editor), and I was able to get it to work, but I was not able to get programs of my own design to work except very tiny programs or to modify existing executables using DEBUG. (Then again, shortly after, I could not get C programs of my own design to work very often either. I forget how hard C is to a beginner sometimes.) Then again, eventually I was able to throw together a decent hex editor, in C this time, in an afternoon, and I am certain it was from internalizing what I had learned from that assembly book, and when I started including assembly language graphics routines in my C programs, I'm sure that helped as well. When everything moved to 32-bit protected-mode code I was kind of lost again though. That book is 16-bit real mode.

Looks like the book is freely available - https://openlibrary.org/books/OL2197699M/Peter_Norton%27s_as...

Just a warning: the file I linked to is "broken" on account of needing Adobe Digital Editions and only one person (in the world?) can read it at a time.

I recommend Computer Systems: A Programmer's Perspective. It sounds like what you're looking for, although it uses a mix of C and IA32.

I came in here to say just this! A fantastic book in so many ways. I read a lot of it on my own and learned more than in many of my classes on similar subjects. It taught me a huge amount about C, systems, architecture, memory and more. Very cool stuff. It starts with x86 but goes over at least the basic differences between it and x64.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact