Sembra un'opinione diffusa che la programmazione degli assiemi richieda più tempo ed è più difficile da programmare in un linguaggio di livello superiore come C. Pertanto, si consiglia o si presume che sia meglio scrivere in un linguaggio di livello superiore per questi motivi e per la migliore portabilità.
Di recente ho scritto in x86 assembly e mi sono reso conto che forse queste ragioni non sono realmente vere, tranne forse la portabilità. Forse è più una questione di familiarità e di saper scrivere bene l'assemblea. Ho anche notato che la programmazione in assembly è abbastanza diversa dalla programmazione in un HLL. Forse un programmatore di assemblaggio esperto ed esperto potrebbe scrivere programmi con la stessa facilità e rapidità di un programmatore C esperto che scrive in C.
Forse è perché la programmazione degli assembly è abbastanza diversa da quella degli HLL, e quindi richiede diversi modi di pensare, metodi e modi, il che rende molto imbarazzante programmare per i non familiari, e quindi gli dà il brutto nome per scrivere programmi.
Se la portabilità non è un problema, allora, che cosa avrebbe C su un buon assemblatore come NASM?
Modifica: solo per sottolineare. Quando si scrive in assembly, non è necessario scrivere solo nei codici di istruzione. È possibile utilizzare macro e procedure e le proprie convenzioni per rendere varie astrazioni per rendere i programmi più modulari, più gestibili e più facili da leggere. È qui che entra in gioco la conoscenza di come scrivere un buon assembly.