MIPS is great because it is essentially designed for learning assembly
Programming
All things programming and coding related. Subcommunity of Technology.
This community's icon was made by Aaron Schneider, under the CC-BY-NC-SA 4.0 license.
Does it have to be a modern architecture? Or can you learn 6502 or 68000?
nope, it doesnt, actually it might be handy to be an old one so i can test it in a emulator at 100% speed
Go with m68k then, high level, very orthogonal, with enough registers to not need tying yourself into a pretzel for most tasks.
If you get an Amiga emulator you might be able to do some more fun stuff with it, compared to emulating only a CPU. In addition, if you search for "Amiga assembly tutorial" you might find more resources than if you search for tutorials for a specific CPU.
It probably doesn’t matter too much which assembly language you learn. In some sense they’re all relatively similar. If you want to learn it for a specific purpose you should learn the language you’re hoping to use. Otherwise, RISC-V, Arm, and MIPS are all pretty nice and clean. x86 is kind of ugly and it might be a little distracting when trying to learn the basics, but it’s probably what your computer has and it’s cool to learn on your actual device.
Other possibilities… TIS-100 and Shenzhen IO are both games where you do some assembly programming. They’re somewhat artificial, but honestly they’ll give you a good introduction.
X86 / X86-64 or ARM. Mostly just due to how accessible information is on them but if I had to choose I'd go with ARM personally. Most used in smartphones, tablets, and other such devices. It has a simple and consistent instruction set, a clear and logical syntax, and a modular and scalable architecture.
Some of the x86 instructions are so complex and niche that they can be considered esoteric. So heads up: if you jump in and attempt to learn x86, then get completely overwhelmed, it's not you.
RISC-V.