null Le 11/08/2002 à 19:24 Je comprends pas bien pourquoi qd j'utilise register pour déclarer une variable qui servira à une fonction, il y a le message : "Register variable 'ma_var' used in nested function".
On peut pas déclarer une variable qui sera utiliser par une fonction avec register ?
Pourtant ça à l'air de bien marcher...
Et le registre du microprocesseur 68k fait quelle taille ?
Dès que l'on lance son programme il est vide ou bien il est déjà utilisé ?
www.wikio.fr/user1921&info=comments
tu la fais commetn exactement ta déclaration ?
(fais voir le bout de code)
le m68k a 8 registres de données (d0-d7)
8 registres d'adresse (a0-a7), mais a7 est le pointeur de pile
un registre superviseur (sr)
un compteur de programme (pc)
les 3 premiers types sont sur 32 bits.
le sr est sur 16 bits je crois
le pc doit être sur 24 bits.
null Le 11/08/2002 à 20:26 Ah ouais, dc il n'y en a pas tant que ça.
tu la fais commetn exactement ta déclaration ?
Eh bien comme ça par ex : register short x=0,y=0;
Il y a d'autres façon de faire.
www.wikio.fr/user1921&info=comments
bizarre...
essaye de pas initialiser les variables à leur déclaration...
ou d'en mettre une mar ligne (je doute que ça change quelque chose)
squale > Le pc fait exactement 32 bits (cf doc constructeur)

Proud to be CAKE©®™
GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.
Exactement !
C la bizzareri du 68000, il s'agit d'un proco 32 Bit qui fonctionne en interne en 32bit etc... mais qui possede un bus d'adresse de 24 Bits..
Sa doit venir du fait que les premier 68000 etait sous la forme de boitier DIL, et 8 fils en moins c pas négligeable dans se format !!!

Proud to be CAKE©®™
GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.
null Le 11/08/2002 à 21:06 Non ça change rien. Mais qd les var ne sont pas utilisé dans une fonction il n'y a plus ce message (affichés comme Warning et no comme une erreur). Avec les fonction ça marche mais je comprend pas pourquoi il y a ce msg justement.
Vous utilisez souvent register vous ? Et dans vos fonctions ?
www.wikio.fr/user1921&info=comments
null Le 11/08/2002 à 21:11 Désolé de faire de la mauvaise pub mais ça vient de la lib à Thibaut: graphX.
Peut-être qu'il se sert des registre pour ça lib ? J'ai laisser plus que la lib de TIGCC et extgraph et ça marche.
www.wikio.fr/user1921&info=comments
null Le 12/08/2002 à 10:25 tu déclare bien tes variables de type register DANS un bloc (entre { et } ),
Euh, non. Je les déclare au début du prog comme une autre variable.
Enfin c'est tjrs dans la fonction principale.
C'est quoi entre un bloc { et } ) ?
C'est à l'intérieur d'une fonction ?
www.wikio.fr/user1921&info=comments
null Le 12/08/2002 à 10:31 Sinon j'ai la 0.94 bêta 18.
www.wikio.fr/user1921&info=comments
un bloc { et }, c'est un bloc qui comence par une accolade ouvrante, et qui finit par une accolade fermante.
par exmple :
void _main(void)
{
}
ou encore
if(...)
{
}
ou même :
{
}
un bloc {} peut correspondre à une fonction, oui, mais aussi à une condition, une boucle, ou même rien du tout
si tu déclares tes vars dans la fonctions principla,e je suppose que tu es dans le premier des cas que j'ai présenté ici.
hem
nested functions = recursion
donc si tu utilise des registres dans une fonction recursive tu niques les variables
de la fonction "mère" (appelante) lors de l'appel recursif
(les fct " mère" et "fille" utilisent le même emplacement pour stocker leurs données
càd les registres)
en ASM on appelle LINK pour allouer u espace sur le stack pour y stocker les variables ce qui est automatiquement fait par GCC si tu ne met pas register et que la fct est recursive

fabetal_ > Hier, je me suis fait monter par un pote
redangel > et en chevals, ça donne quoi?
Nil> OMG I think I'm gay
null Le 12/08/2002 à 16:16 Donc ça sert à rien que je déclare ces variables avec register ?
Pourtnant j'ai constater que ça allait bcp plus vite ? C'est possible ?
www.wikio.fr/user1921&info=comments
bien sur que ça va plus vite!
en fait je me gourais, c'tait pas recursion
(c'est contenu)
c'est pas grave le warning, mais ne mets pas de register dans la fonction mère
ou alors declare ta fct en dehors de la fct mère

fabetal_ > Hier, je me suis fait monter par un pote
redangel > et en chevals, ça donne quoi?
Nil> OMG I think I'm gay
null Le 12/08/2002 à 19:35 Je l'ai télécharger avant que tu l'es mis sur ton site. Depuis un lien que tu as posté sur le forum.
J'ai lu la doc et essayer quelques fonctions mais l'instant je m'en sers pas encore parce-que je fait un traitement de texte (g laissé tombé les niveau de gris parce-qu'avec extgraph on peut pas faire de double buffering avec les niveaux de gris)et c'est un projet qui est bien entammé.
www.wikio.fr/user1921&info=comments
null Le 12/08/2002 à 19:43 Généralement j'utilise register pour 2 short par fonction. Dans un moteur de jeu je suis passé de 160 Fps à 168 et qd on se déplace à travers la carte de 30 à 36.
On peut bien déclarer au mois 10 short au maximum ?
Et c'est possible de faire ça ? : "void Disp_Menu(register unsigned short x1, register unsigned short x2, register unsigned short l, register unsigned short v)"
Et puis c'est normale qu'en redéclarant les varaibles dans toutes les fonctions que je gagne de la place? Là j'ai déjà gagné 1 ko en faisant ça.
www.wikio.fr/user1921&info=comments
le 68k a 5 registres de données et 4 d'adresse dispos en C

fabetal_ > Hier, je me suis fait monter par un pote
redangel > et en chevals, ça donne quoi?
Nil> OMG I think I'm gay
ben je crois que tu as droit à d3-d7 et a2-a6
vu que les autres ne sont pas sauvegardés
mais c'est pô sur
et puis ça serait con de mettre des registers dans d0-d2 et a0-a1
vu qu'il faudrait les sauver à chaque appel de fonsion en ROM

fabetal_ > Hier, je me suis fait monter par un pote
redangel > et en chevals, ça donne quoi?
Nil> OMG I think I'm gay
NON.
>>ben je crois que tu as droit à d3-d7 et a2-a6
Oui avec les registres de donnée, mais non avec les autres.
a5 est utilisé par OPTIMIZE_ROM_CALLS (en fait, il contient ($c8)), et a6 est pour LINK.
et de fonction tout court.

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.
normalement si le compilo est pas trop con, si tu demande trop de variables en register, quand il n'y a plus de registre de libre les autres variables déclaré register sont utilisé comem des variable normal, comme si il n'y avait pas register...
Reste a savoir si dans les modif qu'il on fait a GCC, il on pas viré sa !

Proud to be CAKE©®™
GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.
null Le 13/08/2002 à 10:03 Désolé de vous remettre ça, mais si quelqu'un voudrait me répondre ça serait sympa.
Et c'est possible de faire ça ? : "void Disp_Menu(register unsigned short x1, register unsigned short x2, register unsigned short l, register unsigned short v)"
Et puis c'est normale qu'en redéclarant les varaibles dans toutes les fonctions que je gagne de la place? Là j'ai déjà gagné 1 ko en faisant ça.
Sinon qd on met trop de registre il me semble bien que TIGCC les déclare comme une var normale. Enfin il faudrait faire des tests pour être sûr.
www.wikio.fr/user1921&info=comments