Parece ser uma opinião comum que a programação em assembly leva mais tempo e é mais difícil de programar do que em uma linguagem de nível superior, como C. Portanto, parece recomendável ou presumido que é melhor escrever em uma linguagem de nível superior por esses motivos. e por uma melhor portabilidade.
Recentemente, escrevi no assembly x86 e me ocorreu que talvez esses motivos não sejam realmente verdadeiros, exceto talvez a portabilidade. Talvez seja mais uma questão de familiaridade e saber escrever bem uma montagem. Notei também que a programação em assembly é bem diferente da programação em uma HLL. Talvez um programador de montagem bom e experiente possa escrever programas com a mesma facilidade e rapidez que um programador C experiente escrevendo em C.
Talvez seja porque a programação de montagem seja bem diferente das HLLs e, portanto, exija pensamentos, métodos e maneiras diferentes, o que faz parecer muito estranho programar para pessoas desconhecidas e, por isso, dá o nome errado ao escrever programas.
Se a portabilidade não é um problema, então realmente, o que C teria sobre um bom montador como o NASM?
Edit: Apenas para apontar. Quando você está escrevendo em montagem, não precisa escrever apenas nos códigos de instruções. Você pode usar macros e procedimentos e suas próprias convenções para fazer várias abstrações para tornar os programas mais modulares, mais fáceis de manter e mais fáceis de ler. É aqui que entra o conhecimento de como escrever uma boa montagem.