Bon, en fait j'ai trouvé mon erreur. Par contre, il y a un truc que je ne sais pas, c comment passer des paramètres par la pile et non par registre...
Car ma fonction ASM a besoin de paramètres veanat de la pile et non des registres dn et an!
Help me!!!
faut envoyer vers a7 (a7 est le pointeur de pile), et le décrémenter
pr envoyer un short valant 25 :
move.w #25,-(a7)
pr une chaine, ça doit être quelque chose du style
pea ma_str(pc)
(il me semble)
et une fois la fonction appellé, il faut penser à nettoyer la pile...
quelque chose du style
lea 2(a7),a7
ou lea 4(a7),a7 dans le cas de la chine (une ppinteur fait 4 octets)
ou plus si tu as plus de paramètres
(heu, c vite dit... mais je connaois pas trop l'asm)
cf post 1:"Je suis en train de faire un prog avec TIGCC qui inclut des fonctions ASM"
j'ai dit inclut en voulant dire avec asm("...")
De plus, j'ai TIGCC 0.94 beta 19
Si tu veux avoir les paramètres sur la pile, il faut utiliser une vraie fonction, pas de l'assembleur inline à opérandes C.
Par exemple:
__attribute__((stkparm)) extern int addition(short x, short y);
asm("addition:
move.w 4(%a7),%d0
add.w 8(%a7),%d0
rts")
(Le __attribute__((stkparm)) est le standard normalement, mais je le mets quand-même au cas où tu voudrais compiler ton programme avec -mregparm.)
BiHi Le 08/12/2002 à 14:45 Et comment on fait pour se passer d'AS?
On peut insérer de la même manière des fonctions en A68k dans un programme en C?

;)
Il ne fait que convertir en ASM. Dite-le moi si je me trompe...
CC: le compilateur
AS: l'assembleur
De plus, AS ne fait pas ca:
move.l ($c8).w,a0
si on ne présise pas (...).w, alors, il ne le fera pas tout seul.
En général, dès que l'on a $xxxx il faut mettre ($xxxx).w
C'est uniquement une réponse subjective qu'on peut apporter à cette question.
Moi je trouve que c'est plus qu'un convertisseur : il gère l'adressage des variables, la pile, le passage d'arguments, les structures de données qui sont des choses très abstraites, il optimise, etc.

Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 :
www.ti-fr.com.
Quelques idées personnelles
ici.