There is an old Universal Assembler spec: IEEE Std 694-1985,
along with a Universal Object spec: IEEE Std 695-1990.
That said, there are some really interesting papers on “cheating”:
- Using a High Level Language as a Cross Assembler. ← Read This Paper!
- Lifting Assembly to Intermediate Representation: A Novel Approach Leveraging Compilers.
- No More Translation at Runtime: LLM-Empowered Static Binary Translation might be useful in conjunction with
- Toward a foundational typed assembly language.
With Paper #1, it shows exactly how you can leverage the compiler of a high-level language to essentially handle cross-assembler work; it’s not a completely seamless model for processing already-generated assembly, but it can be used to massively reduce what you have to do.