language isn't the issue, since the language is simply there to express
a solution to a problem. After all, you want to program solutions to the
problem, not get a first in processor architecture

. The more that the
problem can be expressed in high level structured form, the better and
assembler is just too low level and non portable to be of any use. It's also
much more bug prone and difficult to maintain.
Speaking as an ancient 6502 bod from 1977 vintage and one who still programs
things like startup code in assembler, I would much rather be programming in
C, but agree wholeheartedly that C++ is a step too far for any critical
embedded work, irrespective of how fashionable it is. There are good reasons
as well...