> Plan 9 assembly is nice because it looks mostly the > same, and the simple addressing modes are mostly consistent, but it's > far from being really consistent between architectures.
Personally, I agree with the view that trying to generalise assemblers across platforms is chasing a chimera. I loved the Univac assembler I cut my teeth on and nothing has ever given me even a hint of the comfort I found there. But I got used to the 8088 assembler and managed to do some convincing work with it (I won't list the number of issues I thought were total mindlessness by a crowd of engineers with no visible theoretical background). On today's platforms, assembler is not an option, it is a nightmare. Add all the hardware trickery that belongs to microprocessors, not to an adult computer, doesn't make anything more palatable. Really, why should the job of arranging memory on start up belong in the kernel and not in a piece of dedicated logic that gets the job done and then gets out of the way permanently, preferably switches off? One of these day some hardware engineer will figure a way to move the logic of the power supply into the CPU. No, wait, we already have voltage selections at different temperature as a kernel function, I believe! Bottom line? Bless the Go Gods for having successfully subverted much of this nonsense by providing a cross-platform development tool that actually does what it says on the tin, despite efforts by the hardware suppliers to relegate software development (the real thing, not kid-scripting - or is it script-kidding?) to the smallest viable elite of life-challenged droids. I really do feel better now, doctor! Lucio.