6Fermer8
KochiseLe 25/10/2009 à 09:44
jul2149 (./5) :
Une petite question : dans le cas d'un programmeur expérimenté (comme brunni), il est préférable d'écrire ce qu'on veut faire en C avant de l'écrire en ASM? Le code en C serait une sorte de brouillon?

D'une certaine façon, oui. Parce que déclarer des fonctions en C te permet d'avoir une structuration pseudo-UML, chose qui n'est pas forcément faisable en ASM (pouvoir distribuer différentes fonctions dans différents fichiers suivant leur but). Après tu peux très bien utiliser la structure de base en C et remplir les fonctions avec des 'pragma asm' pour pouvoir tweaker au plus juste ton code.

Pense simplement qu'un code full ASM à tendance à être de moins en moins maintenable, déjà parce que de moins en moins de monde travaille en ASM, et ensuite quand tu veux faire évoluer ton code ASM ça devient rapidement le bordel si tu veux bouger/ajouter du code, attention à l'utilisation des registres utilisés pour les passages de paramètres. Le C est standardisé dans ce domaine, il suffit de faire gaffe à tes retours de valeurs à la fin de ton 'prgma' pour pouvoir modifier la structure de ton code C "container" facilement (appeler une autre fonction ou la remplacer par une autre) sans effet de bord.

Le must évidement reste de coder majoritairement en C, et de laisser le compilo faire le boulot d'optimisation. On est en 2009 et les compilos on très très largement évolués, surtout en embarqué. Grace à leur possibilités de configuration, tu peux, comme en ASM avec la directive ORG, définir toi même ton mapping mémoire en fonction de tes besoins. Lit bien la doc, trouve un exemple open-source de base pour t'en inspirer, tu verras qu'à long terme tu gagneras pas mal de temps !

Kochise