I have a couple of recommendations based on my own experiences and across a couple different learning styles, I hope they may be helpful to you.
Books
If you prefer the classic/academic approach (reading books, e.t.c.) I started learning x86 assembly in the mid-2000's using this book:
Its focus is more on introducing you to
programming with x86 assembly as the language, which I think is part of what makes it a particularly good book (and I imagine Steve would appreciate such an approach?).
You can buy it on Amazon in its most recent edition:
https://www.amazon.com/Programming-Ground-Up-Jonathan-Bartlett/dp/1616100648
(but unfortunately that version dropped the iconic purple cover)
The author was also very generous to release the original version under the
GNU Free Documentation License, so you can find it for free on gnu.org:
https://download-mirror.savannah.gnu.org/releases/pgubook/
It's a bit old, but scanning over it again today I have a sense that it didn't age too poorly.
---
In recent years I also purchased and read this book:
(
https://www.amazon.com/Introduction-Assembly-Programming-RISC-V/dp/6500158113)
Admittedly this one is short, not the absolute best quality and ultimately purpose-focused on
RISC-V assembly, but I got a lot out of this book during the pandemic because I was looking for something to do and had purchased some RISC-V SOCs for some projects. If you're like me and you think RISC-V is the future of computing, you might enjoy this book. The cost of the book is helpfully very low.
Practical
If you prefer a more practical or "hands on" approach, there is a game called "Turing Complete" which I found to be an absolute joy:
It sells itself as a "game" (which is partly true because it provides levels and goals in a game-like fashion) but it's really just a robust simulator for building logic gates and components to build your own computer essentially from scratch. The game will step you up from the basics, to building your own
Arithmetic Logic Unit (ALU), to ultimately having a fully working computer with an assembly language you define yourself!
I love this game, and I keep coming back to it every few months. It's available DRM-free on
GOG.com:
https://www.gog.com/game/turing_complete
(it runs great under
wine, if you're on Linux)
Or if you can tolerate DRM and don't mind not really truly owning a copy of the game, it's available on Steam as well:
https://store.steampowered.com/app/1444480/Turing_Complete/
---
I noticed mention here about the 6502, and if you want to get
truly hands-on I think this video series on building your own 6502 computer is amazing:
https://www.youtube.com/playlist?list=PLowKtXNTBypFbtuVMUVXNR0z1mu7dp7eH
This (like the game above) is a bit more focused on the fundamentals behind assembly programming than it is directly focusing on syntax and practices, but you mentioned that this is something you mostly wanted to do for fun, and I remember having a blast building this kit myself. The creator sells kits too, if you don't have components laying around or if you don't want to have to find everything over on
Mouser or something like that (but you can otherwise source all the parts yourself if you prefer).
AI
I never got formal training on assembly (when I was in college it was touched on, but we mostly learned C and Java) so I'm self taught. However (and while this may be contentious), I have found modern
Large Language Models (LLMs) to be reasonably useful as tutors or guides when learning or refreshing yourself on programming topics such as x86 assembly, for instance using
Mistral AI:
You can go on to ask it how to build the code, and it will do a pretty good job. Like humans however LLMs can produce inaccuracies, but generation over generation they get better and better. For instance, all I had to do was give it some of my compiler output (I was using the GNU assembler, it was providing NASM):
Again, not "perfect" and you definitely have to remain skeptical while using them but they do a good job the bulk of the time and importantly you can dig into very specific subjects and syntax very quickly (i.e. "explain what `.section` does, e.t.c.).
I personally use
Mistral AI and recommend it because
it's open-source (
Apache 2.0 License) and I can run it locally, but many of the prominent providers will also give good results.
---
So those were some highlights from my own experiences, I hope they'll help you with your own!