Quant à l'accès aux variables, utiliser la postincrémentation et la prédécrementation est la bonne solution. Mais pourquoi pas écrire en C, comme ça tu accèdes aux champs par nom et GCC en fait quelque chose d'efficace.

Martial Demolins (./3) :Un bon code en C peut donner quelque chose de presque aussi efficace qu'on bon code en assembleur. Les compilateurs optimisent plutôt bien. Programmer en assembleur apporte peu de taille en moins je pense. Quand à la vitesse, la différence doit être minime aussi en général (mais elle n'est pas négligeable dans certains cas critiques).
Je ne code pas en C parce que sur de l'embarqué, c'est de la perte de vitesse et surtout de place.
Martial Demolins (./1) :
La question que je me pose est de savoir si il convient mieux d'établirue convention de destruction des registres (genre d0-d2/a0-a1, au hasard) pour chaque fonction, ou s'il est plus avantageux de faire sauvegarder et restaurer les registres par chaque fonction? Je suppose que ceux qui ont de l'expérience dans les programmes de taille asuront me répondre.
Martial Demolins (./1) :
est-il une bonne idée, du fait de coder en assembleur, d'utiliser au mieux les instructions du proc pour accéder aux variables (s'y déplacer avec de la pré-décrémentation ou post-incrémentation, ce qui peut entrainer nu vrai bazar si on change de place une variable), ou êtes-vous plutôt partisan d'un code qui va accéder nominativement aux variables qui sont utilisées?
Martial Demolins (./1) :
Sur un source de bonne taille et d'une relative complexité, la seconde solution est peut-être la meilleure?
Martial Demolins (./3) :
Pour les registres, j'ai vu que PreOS sauvait puis restaurait souvent tout ce qu'il utilise, alors je me pose la question.
Thibaut (./4) :
Un bon code en C peut donner quelque chose de presque aussi efficace qu'on bon code en assembleur.
Martial Demolins (./5) :
*hem*, pour avoir décompilé du C compilé avec TIGCC/GCC4, je peux te dire qu'on y voit des délires : aucun registre utilisé, lecture sur la pile ou accès à une variable à chaque itération d'une boucle etc... Niveau vitesse, on est loin de l'asm.
PpHd (./11) :
Le backend 68k de GCC n'est plus vraiment maintenu depuis des années. On a un sous gcc pour 68k.
Kevin Kofler (./13) :
Pas vrai, il y a eu un peu de refonte pour GCC 4.3. D'ailleurs, il faudra que je porte notre patchset pour GCC 4.3 (je vais sauter la 4.2).