← Back to context

Comment by purplesyringa

10 months ago

It's really interesting to see what people focus on when learning new things. Instruction encoding is something I would consider arcane knowledge, except that it isn't really useful; if you need to write an assembler or a disassembler, you can always look it up, but otherwise assembler instructions is basically all you need. Focusing on the nuances of a specific architecture's encoding is like people studying arithmetic instead of algebra and saying they now understand "math"; like, yes, a little, but there's so much you don't even know you don't know.

I'm absolutely not criticizing the author here, machine code can absolutely be beautiful and I love the "it isn't scary" sentiment, it just surprised me how unique the focus is. In fact, I think this is the first time I've ever read a post on "low-level computer stuff isn't that hard" and it was about machine code rather than assembly.

Then again, I can absolutely see the appeal. Architectures are fun, and I remember myself designing ones all the time in childhood during summer vacation. (Yes, I know I'm autistic.) Seeing tradeoffs between variable-length and fixed-length, short and long instructions, how register count affects code simplicity and the available opcode space, etc. kind of gives you an intuitive understanding of why real-world architectures look the way they do.