3 ms·
If I wanted to learn assembly language in 2020, what's the best book or resource people would recommend?
by artursapek 6y ago
If I wanted to learn assembly language in 2020, what's the best book or resource people would recommend?
- thomspoon 6y agoImo there’s not really a best book or resource other than buying a microcontroller and doing it yourself! Pick up a ARM Cortex-M4 development board either from TI or STM and reimplement their example code or driver code in assembly! You can look at the ISA to see what assembly instructions are supported, or the disassembly of a running program (probably with no optimizations so you can see what they are doing)
- jagger27 6y agoThere’s definitely something to be said about poking a physical pin in assembly. It makes me feel like I actually have control of the computer, and that I’m not just along for the ride.
- adamnemecek 6y agoI really like "Introduction to 64 Bit Assembly Programming for Linux and OS X: For Linux and OS X" by Ray Seyfarth. It's short and you actually implement something interesting like the correlation function or basic data structures, like linked list.
- artursapek 6y agoThanks!
- ethagnawl 6y agohttps://famicom.party https://famicom.party features the best, most accessible 6502 assembly crash course I've yet to come across. It does strike me as weird that there aren't any popular resources that sit between something as high-level as the linked e-book and something as low-level as "buy some hardware and figure it out".
- mywittyname 6y agoI suspect this has to do with Intel architecture not being very beginner friendly. When I tried learning x86 assembly, I found it to be incredibly overwhelming. There are simulators for teaching assembly, but I don't think those are nearly as fulfilling as hacking on real hardware. And since it's difficult to hack on your computer's hardware, you're left pickup up something more simple.
- JoshTriplett 6y agoIn my opinion, it's less that x86 is any more or less user-friendly, and more about having an environment that gives you the "raw" bare-metal feeling that you could once have from DOS. You can write a few instructions, write to video memory, and the result is right there. You can still get that feeling on x86. For instance, try writing some code directly in the MBR of a disk that writes some bytes to the serial port on 0x3f8 with outb, and load it up in KVM.
- artursapek 6y agoThanks!
- jontro 6y agoI really liked Assembly Language step-by-step. https://www.amazon.com/Assembly-Language-Step-Step-Third/dp/0470497025 https://www.amazon.com/Assembly-Language-Step-Step-Third/dp/...
- JoshTriplett 6y agoAs an unusual initial introduction, I've pointed several people at https://www.muppetlabs.com/~breadbox/software/tiny/ https://www.muppetlabs.com/~breadbox/software/tiny/ .
- ethagnawl 6y agoI'm reading through some of these posts now and they're a great introduction to ASM and the larger ecosystem. Thanks for sharing.