Conversation
Notices
-
@rher @FailurePersonified I think you learn one assembly language, it makes everything else you write make sense, you start to see things very differently. You learn two and then you can kind of extrapolate: they are largely neither complicated nor too different from each other, so learning an obscure one is easy if you know anything with a similar ISA. This one has fewer registers and it's a pain, this one has some registers that are saved for interrupt handlers, this one saves all registers for interrupt handlers, etc.
ARM is a bit weird (in a fun way): conditional flags on *any* instruction rather than just branches, that's the big one. Then aarch64 and thumb.
Anyway, especially old chips, you can pick up assembly for them in a couple of hours as long as you know a similar chip. For example, if you know x86, you can probably pick up most of the old 8-bit chips right away, Z-80 or 6502 or whichever.
So what I did was I learned x86 (or at least as much of it as a person learns if they want to get by; maybe no one knows the entire ISA), then I ended up with an ARM chip and it was delightful, that chip is a lot of fun. Then anything else, I have just picked up as I went. I'd like to play with RISC-V more, but I look at the compiler's output and I can more or less read it.