Il semble que l'opinion générale soit que la programmation en assembleur prend plus de temps et est plus difficile à programmer qu'un langage de niveau supérieur comme le C. Par conséquent, il semble être recommandé ou supposé qu'il est préférable d'écrire dans un langage de niveau supérieur pour ces raisons et pour la raison d'une meilleure portabilité.
Récemment, j'ai écrit en assembleur x86 et je me suis rendu compte que ces raisons n'étaient peut-être pas vraies, à l'exception peut-être de la portabilité. Peut-être s'agit-il plutôt d'une question de familiarité et de savoir comment bien écrire en assembleur. J'ai également remarqué que la programmation en assembleur est très différente de la programmation dans une HLL. Peut-être qu'un bon programmeur assembleur expérimenté pourrait écrire des programmes aussi facilement et aussi rapidement qu'un programmeur C expérimenté écrivant en C.
C'est peut-être parce que la programmation en assembleur est très différente de celle des HLL, et nécessite donc une réflexion, des méthodes et des moyens différents, ce qui donne l'impression qu'il est très difficile de programmer en assembleur pour ceux qui ne le connaissent pas, et lui vaut sa mauvaise réputation pour l'écriture de programmes.
Si la portabilité n'est pas un problème, alors vraiment, qu'est-ce que C a de plus qu'un bon assembleur tel que NASM ?
Edit : Juste pour signaler. Lorsque vous écrivez en assembleur, vous ne devez pas seulement écrire en codes d'instruction. Vous pouvez utiliser des macros, des procédures et vos propres conventions pour faire diverses abstractions afin de rendre les programmes plus modulaires, plus faciles à maintenir et à lire. C'est là qu'il faut savoir comment écrire correctement en assembleur.