Someone in another group is thinking of using a portable assembler to write code for an app that would be ported to a number of different embedded processors including custom processors in FPGAs. I'm wondering how useful this will be in writing code that will require few changes across CPU ISAs and manufacturers.
I am aware that there are many aspects of porting between CPUs that is assembly language independent, like writing to Flash memory. I'm more interested in the issues involved in trying to use a universal assembler to write portable code in general. I'm wondering if it restricts the instructions you can use or if it works more like a compiler where a single instruction translates to multiple target instructions when there is no one instruction suitable.
Or do I misunderstand how a portable assembler works? Does it require a specific assembly language source format for each target just like using the standard assembler for the target?