Peut tu m'envoyer un exemple simple de librairie statique en ASM!
Merci pour h220xtsr.a.
Demain je vais mis mettre et sortir PolySnd 1.2 en version statique mais je voudrais savoir lorsque on créer un programme avec une librairie statique, la fonction est recopié à chaque fois? Donc si on fait un morceau en C ou ASM avec l librairie statique le fichier final fera 1000+taille du morceau!
Et oui, c'est l'inconvénient des librairies statiques...
Enfin, si ta fonction n'est pas trop grosse, ça n'est pas très gênant...
Ma fonction fait environ 1000 octets donc je ne sais pas si ça va être trop gros!
1 KO, ce n'est vraiment pas gros.
Arf, de toute façon Kevin, tu ne conseilleras jamais à quelqu'un de passer en librairie dynamique. Sauf si le code de la lib + le code de l'utilisateur > 64 KO
Je suis en cours de finalisation de mon convertisseur MIDI <=> ASM qui pour l'instant est assez performant. Il faudras attendre encore un peu pour la version statique!
Est ce qu'il est possible d'utiliser en C une librarie statique fait en ASM?
Oui, mais il faut inclure un header avec le prototype C des fonctions.
Et ne pas oublier de spécifier les registres utilisés pour les paramètres, ou __attribute__((stkparm)) si on les passe par la pile.
A là je ne sais pas faire du tout, tu peut m'expliquer à quoi ça sert __attribute__((stkparm)) avec un exemple.
Au lieu de déclarer:
void test(int x);
tu déclares:
void test(int x) __attribute__((stkparm));
Comme ça, si on compile avec -mregparm (passage par registres automatique), test est toujours déclaré correctement.
C'est pour spécifier à TIGCC que les arguments de la fonction doivent être passés sur la pile et non par les registres.
Bon d'accord, maintenant j'appliquerais cette commande!
bah... justement, je crois que la lib est le lecteur, et les fichier les données (enfin, je crois).

Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.
Non, là, les fichiers sont des programmes (composés presque exclusivement de données) et la librairie est une librairie.
En effet, c'est un bon argument. Une librairie qui change en permanence doit être statique. Si elle est dynamique, il y a des conflits de version.
bof... toutes les libs changes à un moment (comme Vertel, par exemple), une fois qu'elle serat stable, ce serat plus un prbm.
et puis perdre 1Ko par musique, c plus que trop, surtout quand la musique est souvent plus petite que la libs, je trouve ça plus qu'abuser. En tous cas, Kevin, je remarque que perdre 1Ko par musique te dérange pas, mais perdre 2Ko pour une fonction pour l'instant non-utiliser te fait sortir les yeux de la tête (je parle de scanf dans tigcclib).

Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.
Pour vous répondre, je récupére les données avec le registre d0,d1,d2 et a1,a2 mais je pense que la meilleur solution serait d'empiler sur la pile et donc j'utiliserais a7.
Personnalement mais musique dans la version 1.2 on leurs taille divisée par 2 mais je trouve encore celà un peu gros. Ton idée de mettre en statique possèdent des inconvénients mais je vais le faire quand même. Il faudra encore attendre parce-que en ce moment je finalise mon convertisseur.
a savoir que une musque en stéréo fait ~1 Ko pour 1 min. La librarie quand à elle fait du 800 Ko.
Si quelqu'un veut créer un lecteur, qu'il n'hésite pas mais pour moi la version 1.2 n'est pas la dernière.
J'avais pensé à transformer les programme en données mais je doit faire beaucoup de choses entre PolySnd et Windows ST. A savoir que maintenant PolySnd évoluras avec Windows ST puisqu'elle sera incluse dans Windows ST.
C'est pas 1ko par musique, c'est 1ko par prog utilisant la lib plutôt non ?
Ce n'est pas le programme qui prend le plus (~100 octets) mais plutôt les données de la musique.
Oui, mais je voulais dire que si tu passes ta lib en statique, ça rajoutera 800 octets par prog qui l'utilise.
C'est bien ça le problème mais après vous faite ce que vous voulez (Statique ou dynamique)... Pour l'instant j'en voit pas l'utilitée de passer en statique car elle n'est pas compatible avec les niveaux de gris...
Non elle fait bien du 800 octets, frce de parlé de Ko! La méthode void func(...) je l'utilise mais je ne sais pas quelle est la meilleur, celle-ci ou par a7?
Par registres, c'est mieux normalement. Parce que si tu passes les paramètres par la pile, la première chose que tu fais d'habitude, c'est de les copier dans un registre...