Accueil Ti-Gen Foire Aux Questions Chat sur le chan #tigcc sur IRC
Liste des membres Rechercher Aide
Bienvenue Invité !   Se connecter             Mes sujets   
Administrer
0 membre(s) et 1 visiteur(s) actif(s) durant les 5 dernières minutes Utilisateurs actifs : Aucun membre + 1 visiteur
Avant de poster sur le forum, il y a des régles de bases à respecter pour une bonne entente et un respect de tous.
Veuillez lire la charte du forum.
  :: Index » Forum Ti68K » Programmation Assembleur 68K » Optimisations avec DBCC (16 réponse(s))
./POST DE DEPART (post n°0)   Marquer comme non lu.
geogeo Ecrit le: Mercredi 13 avril 2005 à 19:34 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Voilà je voudrais optimiser ce code avec des DBCC si c'est possible!

cmpi.b    #TYPE_FLOAT,%d0
jbeq      _TokensExec_ConvertType_Float_To
cmpi.b    #TYPE_INTEGER,%d0
jbeq      _TokensExec_ConvertType_Integer_To

où TYPE_FLOAT = 1 et TYPE_INTEGER = 2


Je me suis penché sur des DBT mais rien à faire, je pige plus rien aux DBCC surtout qu'ils n'agissent pas sur les flags donc DBEQ marche pas comme je veux. :(
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°1   Marquer comme non lu.
Folco Ecrit le: Mercredi 13 avril 2005 à 20:07 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


>>surtout qu'ils n'agissent pas sur les flags
Hein? ils font comment alors? #confus#
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
./Post n°2   Marquer comme non lu.
geogeo Ecrit le: Mercredi 13 avril 2005 à 20:36 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Genre j'ai essayé le code suivant en rapport au code précédent:

moveq.l   #0,%d2
move.b    %d0,%d2
    
subq.w    #1,%d2
dbeq      %d2,_TokensExec_ConvertType_Float_To    |Float
jbeq      _TokensExec_ConvertType_Integer_To    |Integer


Marche pas, j'pige pas. :(
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°3   Marquer comme non lu.
Folco Ecrit le: Mercredi 13 avril 2005 à 23:27 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


tu passes ça au débuggueur, tu vois le registre et le Z-Flag à la fois?
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
./Post n°4   Marquer comme non lu.
geogeo Ecrit le: Jeudi 14 avril 2005 à 00:29 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Je me suis gourré, il fallait utiliser dbne.
Toute façon rien à faire j'arrive pas à optimiser le code de départ, quelqu'un a une astuce?
-Edité le Jeudi 14 avril 2005 à 00:53 par geogeo-
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°5   Marquer comme non lu.
Lionel Debroux Ecrit le: Jeudi 14 avril 2005 à 19:41 Déconnecté(e)    Voir le profil de Lionel Debroux Envoyer un email à Lionel Debroux Visiter le site WEB de Lionel Debroux Envoyer un message privé à Lionel Debroux  

> Toute façon rien à faire j'arrive pas à optimiser le code de départ, quelqu'un a une astuce?
Ca dépend du contexte. Si tu n'utilises pas d0 ailleurs, il est possible de faire subq #2, jbeq, addq #1, jbeq.
Lionel Debroux - membre de TICT.
    
./Post n°6   Marquer comme non lu.
geogeo Ecrit le: Jeudi 14 avril 2005 à 19:48 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


bof j'vois pas de gain là.
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°7   Marquer comme non lu.
Lionel Debroux Ecrit le: Jeudi 14 avril 2005 à 20:29 Déconnecté(e)    Voir le profil de Lionel Debroux Envoyer un email à Lionel Debroux Visiter le site WEB de Lionel Debroux Envoyer un message privé à Lionel Debroux  

cmpi.b/w : 8 clocks, 4 octets.
subq.b/w : 4 clocks, 2 octets.
Lionel Debroux - membre de TICT.
    
./Post n°8   Marquer comme non lu.
Sasume Ecrit le: Vendredi 15 avril 2005 à 09:49 Déconnecté(e)    Voir le profil de Sasume Envoyer un email à Sasume Visiter le site WEB de Sasume Envoyer un message privé à Sasume  

C'est probablement mieux de faire : subq #2,d0 ; bmi machin1 ; beq machin2
    
./Post n°9   Marquer comme non lu.
geogeo Ecrit le: Vendredi 15 avril 2005 à 12:26 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Ah ouai pas bête en effet. :)
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°10   Marquer comme non lu.
Lionel Debroux Ecrit le: Vendredi 15 avril 2005 à 13:51 Déconnecté(e)    Voir le profil de Lionel Debroux Envoyer un email à Lionel Debroux Visiter le site WEB de Lionel Debroux Envoyer un message privé à Lionel Debroux  

Plus malin, en effet.
Lionel Debroux - membre de TICT.
    
./Post n°11   Marquer comme non lu.
Kevin Kofler Ecrit le: Vendredi 15 avril 2005 à 14:58 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Mais faux. bmi, ça veut dire "si le résultat pris comme un nombre signé est négatif". Ce qu'on veut, c'est "si le résultat de la soustraction non signée est négatif", c'est-à-dire "si le résultat de la soustraction non signée déborde d'un nombre non signé", bref si le carry est mis. Donc c'est bcs qu'il faut mettre.
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°12   Marquer comme non lu.
Sasume Ecrit le: Vendredi 15 avril 2005 à 16:00 Déconnecté(e)    Voir le profil de Sasume Envoyer un email à Sasume Visiter le site WEB de Sasume Envoyer un message privé à Sasume  

Merci.
J'ai énormément de difficultés à maîtriser les conditions.
Je ne parviens pas à savoir exactement dans quel cas tels bits sont activés (les bits C et V notamment).

Enfin, là le code marchait tant que d0 contenait un nombre compris entre 0 et 32767. C'est bien ça ?
    
./Post n°13   Marquer comme non lu.
Kevin Kofler Ecrit le: Vendredi 15 avril 2005 à 16:31 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Entre 0 et 32769 même. :)
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°14   Marquer comme non lu.
geogeo Ecrit le: Vendredi 15 avril 2005 à 16:51 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Ok merci :)
Là j'ai des optimisations et ça porte ses fruits.
Sinon un truc qui n'a rien à voir, je voudrais changer l'adresse de la pile USP pour cela je procéde de cette façon:

move.w    #0x2000,%d0
trap      #1          |Mode superviseur
move.l    __SAVE_USP__,%a0      |Change pointeur pile %SP
move      %a0,%USP


Mais rien à faire j'ai un privilège violation. :(
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°15   Marquer comme non lu.
Kevin Kofler Ecrit le: Vendredi 15 avril 2005 à 17:09 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Tu ne peux pas passer en superviseur par le trap #1. Tu pourrais remplacer:
move.w    #0x2000,%d0
trap      #1          |Mode superviseur

par:
trap      #12          |Mode superviseur

et aussi faire un move.w %d0,%sr pour repasser en utilisateur après avoir changé %usp, mais c'est inutile. Un movea.l __SAVE_USP__,%a7 marche très bien.
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°16   Marquer comme non lu.
geogeo Ecrit le: Vendredi 15 avril 2005 à 18:21 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


ah ok merci :)
-Edité le Vendredi 15 avril 2005 à 18:21 par geogeo-
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
  :: Index » Forum Ti68K » Programmation Assembleur 68K » Optimisations avec DBCC (16 réponse(s))
Pages : 1/1     « [1] » »|

.Répondre à ce sujet
Les boutons de code
[B]old[I]talic[U]nderline[S]trikethrough[L]ine Flip Hori[Z]ontallyFlip [V]erticallySha[D]ow[G]low[S]poilerCode [G][C]ite
Bullet [L]istList Item [K] Link [H][E]mail[P]icture SmileysHelp
Couleurs :
Saisissez votre message
Activer les smileys
     

Forum de Ti-Gen v3.0 Copyright ©2004 by Geoffrey ANNEHEIM
Webmaster: Kevin KOFLER, Content Admins: list, Server Admins: Tyler CASSIDY and Kevin KOFLER, DNS Admin: squalyl
Page générée en 56.64ms avec 18 requetes