nous avons migré de l'assembleur vers C dans la programmation des microprocesseurs. J'ai des doutes que c'est une bonne idée
N'ayez crainte, personne ne développe plus de nouveaux programmes en 100% assembleur. De nos jours, C peut être utilisé même pour les architectures 8 bits les plus minuscules et les plus folles. Cependant , connaître un assembleur fait de vous un programmeur C bien meilleur. En outre, il y a toujours quelques petits détails ou deux dans un programme qui doivent être écrits en assembleur.
Je peux dire que la syntaxe C est beaucoup plus facile à apprendre que la syntaxe Assembler.
Oui, la syntaxe est plus facile, certainement. Cependant, l'apprentissage de tout le langage C avec tous les détails ennuyeux est beaucoup plus complexe que l'apprentissage de tous les détails d'un assembleur particulier. C est un langage beaucoup plus grand et plus large. Mais là encore, vous n'aurez peut-être pas besoin d'apprendre tous les détails.
C est plus facile à utiliser pour créer des programmes plus complexes.
En effet, C fournit des mécanismes pour la conception de programmes modulaires, tels que l'encapsulation et les étendues locales / variables locales. Et C a une bibliothèque standard, ainsi qu'une énorme quantité de ressources écrites au cours des 30 dernières années. Et surtout, C est portable.
L'apprentissage de C est en quelque sorte plus productif que l'apprentissage de l'assembleur car il y a plus de choses à développer autour de C que l'assembleur.
C possède de nombreuses fonctionnalités, bibliothèques et ressources prédéfinies, il y aura donc moins de réinvention de la roue. Mais à part cela, votre déclaration est subjective. Je crois que c'est une question de préférence personnelle.
Par exemple, je suis un programmeur C expérimenté, programmant occasionnellement du C ++. Je me trouve beaucoup moins productif en C ++, parce que je ne connais pas ce langage aussi bien que je connais C. Mais juste parce que je ressens cela, cela ne signifie pas nécessairement que la programmation en C est plus productive que la programmation en C ++. Un programmeur C ++ expérimenté aurait sûrement l'opinion contraire.
Et il y a de nombreux aspects à «productif». Un aspect très important est le temps de maintenance, et en particulier le temps nécessaire pour corriger les bugs induits par la maintenance. C est beaucoup plus facile à entretenir que l'assembleur.
L'assembleur est un langage de programmation de niveau inférieur à C, ce qui en fait un bon outil pour programmer directement sur le matériel.
La programmation matérielle peut être effectuée directement dans les deux langues. Les seules choses que vous ne pouvez pas faire en C sont d'accéder aux pointeurs de pile et aux registres de condition, etc., du cœur du processeur lui-même. Donc, si par programmation matérielle vous voulez parler avec votre propre CPU, alors oui, l'assembleur autorise un peu plus que C. Si vous voulez dire accéder au matériel externe, alors l'assembleur n'a aucun avantage sur C. Mais peut-être des inconvénients, car il est souvent plus difficile d'écrire code assembleur générique pour un périphérique externe particulier, que le code C générique.
Est beaucoup plus flexible pour vous faire travailler avec de la mémoire, des interruptions, des micro-registres, etc.
Ce n'est pas correct. C vous permet également de faire tout cela, même si vous devrez peut-être vous fier au code C spécifique au compilateur, comme le mot-clé d'interruption.
En fin de compte, vous devez connaître les deux langues pour programmer les MCU, en mettant l'accent sur C.