Not bad. It reminds me of MASM. It's rather surprising high-level assemblers are so rare now.
You might think that the preprocessor is "weak", which it is, but, look, I used it to define a loop language for Awk, with not only a variety of standard clauses but an easy way to write new clauses.
You can loop over strings, associative arrays, ranges, find maxima, minima, argmax, count, collect lists (there is a Lisp-like layer defining cons cells) and such.
https://www.kylheku.com/cgit/cppawk/about/
(See the info about <iter.h>. There is a man page covering the loop macro and the test suite has coverage of all its clauses in testcases-iter).
Such Macro-Assemblers are also quite common on the mainframe world, besides the 16 bit home micros.
In any case, nasm and yasm do exist as FOSS version of such ideas.