4 ms·
For C, absolutely K&R. For Asm, I concur with cperciva that the best way to go is to start at 8086 and work your way towards more modern assembly. For 8086 I
by sangaya 17y ago
For C, absolutely K&R.
For Asm, I concur with cperciva that the best way to go is to start at 8086 and work your way towards more modern assembly.
For 8086 I highly recommend "The 80x86 IBM PC and Compatible Computers (Volumes I & II): Assembly Language, Design, and Interfacing". I learned from this book and thought it was very helpful.
For more modern stuff I really enjoyed "Computer Systems: A Programmer's Perspective". It will be most beneficial after reading through K&R and being familiar with ASM. It focuses a lot on programming techniques, tips, and tricks so that compiled C/C++ code is turned into efficient assembly.
Finally, if you'd like to build a whole system end to end, the Motorola 68HC11 microcontroller is a fun little piece of hardware to play around with. "MC68HC11: An Introduction to Software and Hardware Interfacing" is a good book for this purpose.
Best wishes on your journey into the low-level programming world!
PS. I'm biased. I have read and own all of the above mentioned books. Thanks for getting me to brush off the dust again ;)
- gte910h 17y agoThe best way to learn assembly is to do it on a risc chip, then work up to a CISC chip. So pic, mips, etc first, then X86