6 ms·
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
by skywhopper 13y ago
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/dp/0136619010 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?
- shuffle2 13y agohttp://www.agner.org/optimize/#manuals http://www.agner.org/optimize/#manuals http://ref.x86asm.net/ http://ref.x86asm.net/ http://www.sandpile.org/ http://www.sandpile.org/ https://web.archive.org/web/20110713081927/http://siyobik.info/main/reference https://web.archive.org/web/20110713081927/http://siyobik.in... (anyone know of a mirror? this was nice)
- acc01 13y ago> anyone know of a mirror? http://siyobik.info.gf/main/reference/ http://siyobik.info.gf/main/reference/
- drivers99 13y agoThat 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.
- voltagex_ 13y agoLooks like the book is freely available - https://openlibrary.org/books/OL2197699M/Peter_Norton%27s_assembly_language_book_for_the_IBM_PC https://openlibrary.org/books/OL2197699M/Peter_Norton%27s_as...
- voltagex_ 13y agoJust 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.
- socillion 13y agoI recommend Computer Systems: A Programmer's Perspective. It sounds like what you're looking for, although it uses a mix of C and IA32.
- thinkpad20 13y agoI 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.